Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.04.2009, 07:16
nbstudio nbstudio вне форума
Прохожий
 
Регистрация: 01.09.2008
Сообщения: 38
Репутация: 10
Стрелка Снайпер на Delphi!

Всем здорова. Столкнулся с очень тупой проблемкой при написании самой простой игрушки. В общем, на форме есть рисунок Image1 и таймер, в таймере такой код:

Randomize; //запускаем генератор случайных чисел
Image2.left:=Random(Form1.width);
Image2.top:=Random(Form1.height);

Тоесть, таймер постоянно в случайном порядке двигает картинку на форме. Проблема в том, что клик на картинку мышкой (попадание в цель) должен зачисляться как очко в какую-нибудь переменную и выводиться в Label1 на форме, а если "очков" станет 10, то showmessage('Вы выиграли!'); Помогите плз, думаю проблема несложная
Ответить с цитированием
  #2  
Старый 30.04.2009, 08:04
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

Ну onMouseDown у Image2:
Код:
inc(count);
label1.caption:=IntToStr(count);
if count = 10 then 
begin
  showmessage('Вы выиграли')
  count:=0;
end;
Писал прям тут, но должно работать.
Ответить с цитированием
  #3  
Старый 30.04.2009, 08:27
nbstudio nbstudio вне форума
Прохожий
 
Регистрация: 01.09.2008
Сообщения: 38
Репутация: 10
По умолчанию

Не-а, не работает, как я понял count - это переменная, написал в var ее как count:integer. И при клацании по картинке ничего в Label не выводит вообще. Переписал этот код в событие Image1Click - так при первом же попадании вывело число 11678929 и все больше не хочет. А надо чтоб при каждом клацании прибавалялось по 1 очку.
Ответить с цитированием
  #4  
Старый 30.04.2009, 08:32
nbstudio nbstudio вне форума
Прохожий
 
Регистрация: 01.09.2008
Сообщения: 38
Репутация: 10
По умолчанию

а, не, то я написал случайно этот код в mousedown Label'a случайно, но теперь все-равно при клике на картинку выводит это число.
Ответить с цитированием
  #5  
Старый 30.04.2009, 17:37
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Инициализируй при создании формы.
Код:
  count:=0;
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #6  
Старый 30.04.2009, 19:15
nbstudio nbstudio вне форума
Прохожий
 
Регистрация: 01.09.2008
Сообщения: 38
Репутация: 10
По умолчанию

Нашел решение, вот и код:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image2.top:=Random(Form1.height) + 1;
Image2.left:=Random(Form1.width) + 1;
end;

procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if StrToInt(Label1.Caption) < 10 then
begin
 Image2.top:=Random(Form1.height) + 1;
 Image2.left:=Random(Form1.width);
 Label1.Caption:=IntToStr(StrToInt(Label1.Caption)+1);
 Timer1.Interval := Timer1.Interval - 100;
end;
if Label1.Caption = '10' then
begin
  Timer1.Enabled:=false;
  Label1.Caption:='0';
  showmessage('Вы выиграли!');
end;
end;
Admin: Не забываем про теги!

Последний раз редактировалось Admin, 03.05.2009 в 13:01.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter