![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Эффект падающих цифр
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]
> Пробовал пинать, не катится.
Карбюратор, наверно, не сосает..