Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2011, 00:20   #1
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
Радость Украшение для рабочего стола!

Всем Здравствуйте!вот украшение для рабочего стола..все вроде работает, только как бы её сделать так, чтобы снежинки падали как можно плавнее.. я уже все перепробывал..и интервалы таймеров и шаги передвижения объектов..
Вложения
Тип файла: rar Snow1.rar (168.7 Кб, 22 просмотров)

Последний раз редактировалось Vervolf; 19.01.2011 в 00:23. Причина: залил не тот файл.
Vervolf вне форума Ответить с цитированием
Старый 19.01.2011, 00:31   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

По сабжу ничего нет, но вот это меня испугало:
Код:
For i2:=1 to Col do
 begin
 if img[i2].Visible=true then
  begin
  if img[i2].Top<ClientHeight+img[i2].Height then
   begin
   img[i2].Top:=Img[i2].Top+Speed;
   Form1.DoubleBuffered:=True;
   st:=RandomRange(1,3);
   if st=1 then
    begin
    img[i2].Left:=img[i2].Left+RandomRange(3,6);
    end;
   if st=2 then
    begin
    img[i2].Left:=img[i2].Left-RandomRange(3,6);
    end;
   end;
  end;
 end;
По-моему вот так будет красивее и быстрее обрабатываться:
Код:
For i2:=1 to Col do
 if (img[i2].Visible) and (img[i2].Top<ClientHeight+img[i2].Height) then
 begin
   img[i2].Top:=Img[i2].Top+Speed;
   Form1.DoubleBuffered:=True;
   st:=RandomRange(1,3);
   case ST of
   1:img[i2].Left:=img[i2].Left+RandomRange(3,6);
   2:img[i2].Left:=img[i2].Left-RandomRange(3,6);
   end;
 end;
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 19.01.2011, 00:37   #3
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
По сабжу ничего нет, но вот это меня испугало:
Код:
For i2:=1 to Col do
 begin
 if img[i2].Visible=true then
  begin
  if img[i2].Top<ClientHeight+img[i2].Height then
   begin
   img[i2].Top:=Img[i2].Top+Speed;
   Form1.DoubleBuffered:=True;
   st:=RandomRange(1,3);
   if st=1 then
    begin
    img[i2].Left:=img[i2].Left+RandomRange(3,6);
    end;
   if st=2 then
    begin
    img[i2].Left:=img[i2].Left-RandomRange(3,6);
    end;
   end;
  end;
 end;
По-моему вот так будет красивее и быстрее обрабатываться:
Код:
For i2:=1 to Col do
 if (img[i2].Visible) and (img[i2].Top<ClientHeight+img[i2].Height) then
 begin
   img[i2].Top:=Img[i2].Top+Speed;
   Form1.DoubleBuffered:=True;
   st:=RandomRange(1,3);
   case ST of
   1:img[i2].Left:=img[i2].Left+RandomRange(3,6);
   2:img[i2].Left:=img[i2].Left-RandomRange(3,6);
   end;
 end;
да, согласен, спасибо!че то сразу не сообразил..
Vervolf вне форума Ответить с цитированием
Старый 19.01.2011, 00:45   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

А вот теперь по сабжу.
Решил твою задачку вводом новой переменной j. См исходник.
Корректируй как тебе нужно. Просто движение получилось слишком синхронным, а додумать уже твое дело. тем более с Рамдмайзом ты знаком как я вижу)
Вложения
Тип файла: rar Snow1.rar (169.4 Кб, 23 просмотров)
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 19.01.2011 в 00:47.
MyLastHit вне форума Ответить с цитированием
Старый 19.01.2011, 00:56   #5
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
По умолчанию

Спасибо!
Vervolf вне форума Ответить с цитированием
Старый 19.01.2011, 11:30   #6
Gambler
Игрок
Форумчанин
 
Аватар для Gambler
 
Регистрация: 29.10.2006
Сообщений: 367
По умолчанию

пути снежинок явно надо переписать... Ну что за синхронное падание. ) Я писал как то давно молнии. ПО принципу фракталов, случайно изрезанные. Думаю тут можно применить их как пути снежинкам.
Жизнь всегда игра. Но смерть - не всегда поражение.

#define true (Math.random()>0.5) //Удачной отладки
Gambler вне форума Ответить с цитированием
Старый 19.01.2011, 19:47   #7
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
По умолчанию

Цитата:
Сообщение от Gambler Посмотреть сообщение
пути снежинок явно надо переписать... Ну что за синхронное падание. ) Я писал как то давно молнии. ПО принципу фракталов, случайно изрезанные. Думаю тут можно применить их как пути снежинкам.
а как фракталы в Delphi реализовать?можно пример?
Vervolf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обои для рабочего стола - 9 штук - made in programmersforum Alar О форуме и сайтах клуба 52 20.09.2011 21:19
Скриншот рабочего стола C# alxd Общие вопросы .NET 5 08.02.2010 19:38
Блокировка рабочего стола dani92 Общие вопросы Delphi 52 29.09.2009 18:17
Обои рабочего стола YakovN Мультимедиа в Delphi 1 13.03.2009 19:43
Разрешение рабочего стола. SanekIrk Общие вопросы Delphi 2 10.07.2008 18:01