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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Гусеница на рабочем столе, Помогите сделать 
:(
    Опции темы
GLX
Дата 5.8.2016, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемые форумчане ! Помогите переделать этот кусок кода так, чтобы гусеница ползала по рабочему столу ...

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Image1: TImage;
    Timer2: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
//Инициализация переменных насекомых
  Form1: TForm1;
  MyImage: array[1..2] of TImage;
  ImgMass: array[1..6] of TBitMap;
  shagx1,shagx2,shagy2:integer;
  spr1,spr2,sprmin,sprmax:word;
  move:string;
//Инициализация переменных Космоса
  starsx: array [0..400] of integer;
  starsy: array [0..400] of integer;
  Xmin,Ymin,Xmax,Ymax:integer;
  i:integer;

//Пуск
implementation

{$R *.DFM}

//Процедура создания Формы
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
//Далее создаём графические объекты динамически
MyImage[1]:=TImage.Create(Form1);
For i:=1 to 4 Do
   begin
   ImgMass[i]:=TBitMap.Create;
   ImgMass[i].LoadFromFile('Worm'+IntToStr(i)+'.bmp');
   end;
sprmin:=1;
sprmax:=4;
spr1:=sprmin;
shagx1:=-4;
move:='left';
MyImage[1].Left:=400;
MyImage[1].Top:=100;
//Создаём Космическое пространство
Randomize;
Xmin:=0;
Xmax:=640;
Ymin:=0;
Ymax:=480;
Form1.Image1.Canvas.Brush.Color:=clBlack;
Form1.Image1.Canvas.FillRect(Rect(Xmin,Ymin,Xmax,Ymax));
Form1.Image1.Width:=640;
Form1.Image1.Height:=480;
Form1.Image1.Canvas.Brush.Color:=clWhite;
For I:=1 to 400 Do
   begin
   StarsX[I]:=Random(Xmax);
   StarsY[I]:=Random(Ymax);
   Form1.Image1.Canvas.FillRect(Rect(starsx[i],starsy[i],starsx[i]+1,starsy[i]+1));
   end;
end;

//Процедура разрушения формы и освобождение системных ресурсов созданных ранее
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
i:integer;
begin
For i:=1 to 4 Do
   begin
   ImgMass[i].Free;
   end;
MyImage[1].Free;
end;

//Создаём таймер, который будет менять картинки с заданным промежутком времени
procedure TForm1.Timer1Timer(Sender: TObject);
const
xmin=0;
ymin=0;
xmax=614;
ymax=480;
var
x,y:integer;
begin
//Загружаем изображение Гусеницы в объект
MyImage[1].Picture.Assign(ImgMass[spr1]);
MyImage[1].Visible:=True;
MyImage[1].AutoSize:=True;
MyImage[1].Parent:=Form1;
MyImage[1].Left:=MyImage[1].Left+shagx1;
//Делаем так чтобы Гусеница ползала от края до края и так далее
If MyImage[1].Left<xmin then
   begin
   shagx1:=4;
   move:='right';
   end;
If MyImage[1].Left>xmax then
   begin
   shagx1:=-4;
   move:='left';
   end;
spr1:=spr1+1;
//Гусеница ползёт влево
If (move='left') and (spr1>2) then
   begin
   spr1:=1;
   spr2:=5;
   end;
//Гусеница ползёт вправо
If (move='right') and (spr1>4) then
   begin
   spr1:=3;
   spr2:=6;
   end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
i,j:integer;
begin
//Создаём мигание звёзд
Form1.Image1.Canvas.Brush.Color:=clBlack;
i:=Random(400);
Form1.Image1.Canvas.FillRect(Rect(starsx[i],starsy[i],starsx[i]+1,starsy[i]+1));
Form1.Image1.Canvas.Brush.Color:=clWhite;
j:=Random(400);
Form1.Image1.Canvas.FillRect(Rect(starsx[j],starsy[j],starsx[j]+1,starsy[j]+1));
i:=Random(400);
end;

end.



Спасибо, что просмотрели пример !

Добавлено через 6 минут и 31 секунду
Сделал так, но ползает она только в форме. А как сделать чтобы она ползала на рабочем столе ? Как червячки из Norton Commander 4.0 ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

1. Публиковать ссылки на вскрытые компоненты

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

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


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

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


 




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


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

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