|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Снайпер на Delphi!
Всем здорова. Столкнулся с очень тупой проблемкой при написании самой простой игрушки. В общем, на форме есть рисунок Image1 и таймер, в таймере такой код:
Randomize; //запускаем генератор случайных чисел Image2.left:=Random(Form1.width); Image2.top:=Random(Form1.height); Тоесть, таймер постоянно в случайном порядке двигает картинку на форме. Проблема в том, что клик на картинку мышкой (попадание в цель) должен зачисляться как очко в какую-нибудь переменную и выводиться в Label1 на форме, а если "очков" станет 10, то showmessage('Вы выиграли!'); Помогите плз, думаю проблема несложная |
#2
|
||||
|
||||
Ну onMouseDown у Image2:
Код:
inc(count); label1.caption:=IntToStr(count); if count = 10 then begin showmessage('Вы выиграли') count:=0; end; |
#3
|
|||
|
|||
Не-а, не работает, как я понял count - это переменная, написал в var ее как count:integer. И при клацании по картинке ничего в Label не выводит вообще. Переписал этот код в событие Image1Click - так при первом же попадании вывело число 11678929 и все больше не хочет. А надо чтоб при каждом клацании прибавалялось по 1 очку.
|
#4
|
|||
|
|||
а, не, то я написал случайно этот код в mousedown Label'a случайно, но теперь все-равно при клике на картинку выводит это число.
|
#5
|
||||
|
||||
Инициализируй при создании формы.
Код:
count:=0; Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#6
|
|||
|
|||
Нашел решение, вот и код:
Код:
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, 03.05.2009 в 13:01. |