![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем здорова. Столкнулся с очень тупой проблемкой при написании самой простой игрушки. В общем, на форме есть рисунок 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; |
|
#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. |