Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Эффект падающих цифр


Страницы:   1 2 3

datorn ©   (2009-07-17 19:57:00) 

Добрового времени суток, мастера! Подскажите, пожалуйста, как реализовать эффект падающих цифр ("дождь из цифр")? Этот эффект реализован в фильме "Матрица".
Вот реализовал один столбик "дождя", но как их сделать много и независимыми?

var
y_old:integer;
s:string;
c1,c2:TColor;
begin
c1:=$002FFF6D;
c2:=$00008800;
canvas.Font.Color:=c1;
//setbkmode(form1.canvas.Handle,Transparent);

s:=inttostr(random(2))+inttostr(random(2));

 y_old := y-canvas.TextHeight(s);
 canvas.TextOut(x,y,s);
 canvas.Font.Color:=c2;
 canvas.TextOut(x,y_old,s1);
 s1:=s;
end;


V   (2009-07-20 21:34:00) [21]

Я скорее всего неправильно понял смысл эффекта матрицы, а посему вопрос: по какому принципу подсвечиваются светлозеленым циферки, и должны ли падающие цифры меняться?
Ну вот у меня получилось вот это http://www.filehoster.ru/files/dd5920


datorn   (2009-07-20 18:54:00) [22]

Dennis I. Komarov, до сих пор веришь анкетам? Наивный...


Dennis I. Komarov   (2009-07-20 13:52:00) [23]


> можешь у меня уточнить ;)

не, не интересно будет... ;)


KilkennyCat   (2009-07-20 13:45:00) [24]


> надо у нее уточнить как...

можешь у меня уточнить ;) хотя, для этого придется старую почту поднимать...


Dennis I. Komarov   (2009-07-20 11:59:00) [25]


> а цифры все падали и падали...

Не, ну я могу понять девушку, у которой падали, но тут (судя по анкете) - уже все совсем запущено. Да, она со статическими массивами то сделала :) надо у нее уточнить как...
;)


AlexDan   (2009-07-19 23:59:00) [26]

если есть один дождь, то какая проблемма сделать много..? один цикл в другом или что-то вроде)..


turbouser   (2009-07-19 14:11:00) [27]

а цифры все падали и падали...


Германн   (2009-07-19 02:23:00) [28]


> KilkennyCat ©   (19.07.09 02:16) [28]
>
>
> > Где в программе ты использовал циклы с процедурой m?
>

Не смеши. Лучше иди спать. :)


KilkennyCat   (2009-07-19 02:16:00) [29]


> Где в программе ты использовал циклы с процедурой m?


> for y:=1 t0 10 do
> begin
> for x:=1 to 10 do
>  m(x,y);
>  sleep(500);
> end;


KilkennyCat   (2009-07-19 02:14:00) [30]

А я бы создал битмап на всю необходимую экрану, смещал бы в нем стоблцы букв, дорисовывая в верх новую и регулируя яркость необходимых участков, после чего делал бы флип на экран.


Германн   (2009-07-19 01:57:00) [31]


> datorn ©   (18.07.09 08:58) [25]
>
> Германн ©   (18.07.09 00:56) [23]
>

Арифметика меня не интересует (пока).
Где в программе ты использовал циклы с процедурой m?


datorn   (2009-07-18 08:58:00) [32]

Германн ©   (18.07.09 00:56) [23]


procedure TForm1.m(var x,y:integer);
var
y_old:integer;
s:string;
c1,c2:TColor;
begin
c1:=$002FFF6D;
c2:=$00008800;
canvas.Font.Color:=c1;
//setbkmode(form1.canvas.Handle,Transparent);

s:=inttostr(random(2))+inttostr(random(2));

y_old := y-canvas.TextHeight(s);
canvas.TextOut(x,y,s);
canvas.Font.Color:=c2;
canvas.TextOut(x,y_old,s1);
s1:=s;
end;

...

for y:=1 t0 10 do
begin
for x:=1 to 10 do
 m(x,y);
 sleep(500);
end;


Художник   (2009-07-18 06:43:00) [33]

Мх а если ченить типа

type
TSuperPuperTipoZapis= packed record
 x,y,speed:integer;
end;

...
ar:array [0..49] of TSuperPuperTipoZapis;

...

inc(ar[x].y,ar[x].speed)


Германн   (2009-07-18 00:56:00) [34]


> datorn ©   (17.07.09 20:26) [9]
>
> Ну а как??? Я пытался через цикл, использовал sleep, изменял
> икс и игрек, а всё равно не тот эффект!

Интересно как ты "пытался через цикл, использовал sleep, изменял
икс и игрек"?


> Сергей М. ©   (17.07.09 20:21) [6]
>
> Ну точно не лаба)..
>

Но всё лучше, чем "падающие шары". :)


sniknik   (2009-07-17 23:18:00) [35]

datorn ©   (17.07.09 22:49) [21]
читай "алгоритм" еще, ты не "врубился".

> потому что скорость определяется интервалом таймера
скорость там определяется интервалом таймера * на рандомное значение из массива x для каждой строчки.


datorn   (2009-07-17 22:49:00) [36]

sniknik ©   (17.07.09 20:36) [15]
По описанному алгоритму каждая из колонок цифр опускается синхронно с другой (потому что скорость определяется интервалом таймера), а надо, чтоб каждая из "струек" цифр падала отдельно.


Сергей М.   (2009-07-17 20:53:00) [37]


> Обычно он ...помогает:.. попробуй


Лучше уж "джага-джага"


Сергей М.   (2009-07-17 20:42:00) [38]

На здоровье.
Носи не стаптывай.


datorn   (2009-07-17 20:41:00) [39]

Сергей М, очень важные советы, демонстрирующие ваше мастерство в кодинге! Спасибо.


Сергей М.   (2009-07-17 20:39:00) [40]


> Пробовал пинать, не катится.


Карбюратор, наверно, не сосает..


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо