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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2016, 12:29   #1
prog1995
 
Регистрация: 22.09.2013
Сообщений: 8
Сообщение облако+движение+дождь(Delphi)

Дага задача .По форме плывет облако ,на середине останавливается, из облака идет дождь.Облако уплывает .
Т.к я еще новичок - возникли проблемы с реализацией подчёркнутого текста . Прошу помощи в доведении до ума программы. Мой наработки.:
Код:
[DELPHI]unit anim;

interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;
const
scr_width = 640;
scr_height = 480;
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    procedure Timer1Timer(Sender: TObject);
      private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
 
  x,y,x1,y1:integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin  
    Image3.Visible := False ;
    x:=x+2;
    if x>scr_width+image2.Width then x:=-image2.Width;
    image2.Left:=x;
       begin
       if x = 280 then timer1.Enabled:=false
       end ;
         begin
         if  timer1.Enabled=false then  Image3.Visible:=True
         end;
end; 
end.[/DELPHI]
prog1995 вне форума Ответить с цитированием
Старый 26.05.2016, 14:24   #2
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

сделано криво но пока не кто ничего лучше не предложил
держи
ДОЖДИК.rar

Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 26.05.2016, 16:43   #3
prog1995
 
Регистрация: 22.09.2013
Сообщений: 8
По умолчанию

Спасибо,конечно,но это у меня есть - проблема в том : как Облако уплывает сделать это после остановки.

Последний раз редактировалось prog1995; 26.05.2016 в 16:51.
prog1995 вне форума Ответить с цитированием
Старый 26.05.2016, 17:04   #4
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

дайте ка ваш проект.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 29.05.2016, 18:02   #5
prog1995
 
Регистрация: 22.09.2013
Сообщений: 8
По умолчанию

Проект не влезает,но вот файлы bmp (дождь,фон,облако) и код
PHP код:
unit anim;

interface
 
uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsExtCtrls;
const
scr_width 640;
scr_height 480;
type
  TForm1 
= class(TForm)
    
Timer1TTimer;
    
Image1TImage;
    
Image2TImage;
    
Image3TImage;
    
procedure Timer1Timer(SenderTObject);
      private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;
 
  
x,y,x1,y1:integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(SenderTObject);
begin  
    Image3
.Visible := False ;
    
x:=x+2;
    if 
x>scr_width+image2.Width then x:=-image2.Width;
    
image2.Left:=x;
       
begin
       
if 280 then timer1.Enabled:=false
       end 
;
         
begin
         
if  timer1.Enabled=false then  Image3.Visible:=True
         end
;
end
end
Вложения
Тип файла: rar 1.rar (205.6 Кб, 16 просмотров)
prog1995 вне форума Ответить с цитированием
Старый 06.06.2016, 11:09   #6
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Я предложу получше, а товарищу ДвоЕЧнику - заслуженная двойка.
Суть:
объявляем структуру из полей - начальная координата х, начальная координата у, текущая х и текущая у, конечная х и конечная у (у-и можно опустить, если не предполагается движение по вертикали), количество тиков времени на выполнение движения(либо в секундах указывать), создание дождя (булевый флаг), по желанию ещё какие либо поля (можно, например, цвет или размер менять).
Потом создаём массив (можно константный, заполнить сразу в коде, или как переменную с заполнением на старте программы, или, что даже лучше, с долей участия пользователя) из этих записей, где указываем, что плывёт из такой точки в такую-то столько-то времени, когда надо делает дождь, когда надо стоит (время есть а разности координат нет). И заводим переменную количества тиков и текущей фазы.
Потом в таймере производим отсчёт тиков (с учётом интервала таймера получим и время в секундах), и для текущей фазы проверяем если она она закончилась(достигнуто время длительности фазы), то переходим к следующей фазе (обнулив переменную тиков, делая отсчёт времени для новой фазы с нуля, и задав ткущие координаты фазы равные начальным), если ещё не закончилась, двигаем по координатам (приращение координат рассчитать как вся разность (межд конечной и начальной) делить на количество тиков, и соответсвенно меняем текущие координаты, если надо создаём дождик (в координатах, соответствующих текущим), в конце всего расчёта меняем координаты имейджей на нужные, и показываем их.
Этот подход позволит сделать регулировку анимаций, даст возможность делать паузы, перезапуск анимации и прочее.
Реализовать же это немногим сложнее, чем та лапша из ифов, что вы, граждане, тут обсуждаете.
phomm вне форума Ответить с цитированием
Старый 06.06.2016, 18:35   #7
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

MyRepoForTests.zip
Оно наверное и не надо никому уже нафиг, но мож какая-нить студентка лет через 20 скачает и посмотрит как убого кодили в 2016-м
Вы там держитесь.
TaLadno вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
22 декабря - шел теплый дождь, смывая осеннюю грязь :) Alar Свободное общение 15 27.12.2015 13:14
Облако тегов Gromobedg Помощь студентам 0 19.11.2011 13:09
Графика в Паскале Дождь и круги на воде Klik_1602 Помощь студентам 1 29.03.2011 23:51
Дождь, элемент Canvas (Delphi) fuzo Помощь студентам 0 11.12.2010 21:51
Переменная облачность. Небольшой дождь KORN Свободное общение 9 23.07.2009 04:11