Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> *Звёздное небо на Free Pascal*, Скроллинг пискселей на разных планах. 
:(
    Опции темы
GLX
Дата 7.4.2016, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 30.3.2011

Репутация: нет
Всего: нет



Код

program ZVEZDNOE_NEBO;
uses graph,crt;                        
var
vga,vgahi:integer;       
n: word;                      
x,y: integer;
a : array [1..800] of real;
b : array [1..800] of integer;
samMask : array [0..3, 0..2] of integer;
t: real;
samx:integer;
samy: real;
i,j:integer;


Label
label1,label2;
BEGIN
samMask[0,0]:=1;
samMask[0,1]:=1;
samMask[0,2]:=0;
samMask[1,0]:=0;
samMask[1,1]:=1;
samMask[1,2]:=0;
samMask[2,0]:=1;
samMask[2,1]:=1;
samMask[2,2]:=1;
samMask[3,0]:=0;
samMask[3,1]:=1;
samMask[3,2]:=0;

t:=0.0;

InitGraph(vga, vgahi ,'c:\prg\bp\bgi');       
For n:=1 to 800 do
   begin
   a[n]:=Random(1280);    
   b[n]:=Random(1024);                          
   end;

samx:=200;
samy:=round(500 + 100* sin(Pi*t/200));
t:=0.0;
For i:=0 to 3 do
    begin
    For j:=0 to 2 do
    begin
    if samMask[i,j]=1 then Putpixel(samx+i,round(samy+j),15);
    end;
end;

label1:
t:=t;
For i:=0 to 3 do
begin
        For j:=0 to 2 do
        begin
        if samMask[i,j]=1 then Putpixel(samx+i,round(samy+j),0);
        end;
end;

t:=t+1.0;
samy:=round(500 + 100 * sin(Pi * t/200));
For i:=0 to 3 do
begin
        For j:=0 to 2 do
        begin
        if samMask[i,j]=1 then Putpixel(samx+i,round(samy+j),15);
        end;
end;




For n:=1 to 800 do
   begin
   x:=round(a[n]);
   Putpixel(x,b[n],0);
   IF n<=100 then a[n]:=a[n]-1;
   IF (n>100) and (n<=200) then a[n]:=a[n]-0.8;
   IF (n>200) and (n<=300) then a[n]:=a[n]-0.6;
   IF (n>300) and (n<=400) then a[n]:=a[n]-0.4;
   IF (n>400) and (n<=500) then a[n]:=a[n]-0.2;
   IF (n>500) then a[n]:=a[n]-0;

   x:=round(a[n]);
   Putpixel(x,b[n],15);
   IF a[n]<=0 then
     begin
     x:=round(a[n]);
     Putpixel(x,b[n],0);
     a[n]:=1280;
     b[n]:=Random(1024);
     end;
   end;
If KeyPressed=true then goto label2;
GOTO label1;
label2:
Closegraph;
end.


P.S:

Идея вот в чём: как сделать маску спрайта на ассемблере ? Помогите, пожалуйста !

Это сообщение отредактировал(а) GLX - 7.4.2016, 16:40
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1009 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.