|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.06.2008, 10:08 | #1 |
Пользователь
Регистрация: 03.06.2008
Сообщений: 10
|
Игра озеро на Delphi, нужна небольшая помощь
Суть игры простая: Есть озеро, в нем плавают рыбы 2-х видов: карп и щука {Эту часть работы я выполнил}. Нужно чтобы рыбы разных видов поедали друг друга, а одного вида размножались. Рыбы у меня сделаны .bmp изображениями, в общем когда эти изображения соприкасаются и должно происходить одно из действий, помогите пожалуйста написать такую процедуру. Опыта работы у меня немного и не получается это сделать
Вот Юнит, относящийся к рыбам: Код:
Последний раз редактировалось Stilet; 03.06.2008 в 10:55. |
03.06.2008, 10:59 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А где тут у тебя проверка пересечения этих картинок?
I'm learning to live...
|
03.06.2008, 11:12 | #3 |
Пользователь
Регистрация: 03.06.2008
Сообщений: 10
|
Я недавно начал программировать в Delphi, знаком только с Pascal, и именно с этим у меня и проблема, незнаю как сделать пересечение картинок! Остальное то более менее понятно ( как создать новую рыбку и удалить при поедании)
Помоги пожалуйста. Rect(x,y,x+Body.Width,y+Body.Height ); - Это изображение одной рыбы. Никак не могу придумать: как сделать, чтобы он сравнил их со всеми остальными рыбами из массива!? Если бы их 2 было, то не сложно в принципе ... а так чёто не могу догнать .... Помогите plz {Рыбы хранятся в массивах: Ribki[i]:=new(PCarp,Init(Random(Width),Rand om(Height),Red,Owner,Body)); Ribki[i]:=new(PShuka,Init(Random(Width),Ran dom(Height),Red,Owner,Body));} Последний раз редактировалось Stilet; 03.06.2008 в 13:38. |
03.06.2008, 13:59 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
М.м.м... Как ты в паскале бы проверял пересекаются ли прямоугольники или нет?
I'm learning to live...
|
03.06.2008, 14:10 | #5 |
Пользователь
Регистрация: 03.06.2008
Сообщений: 10
|
if (x>Ribki[i]^.x) and (x<Ribki[i]^.x+77) and (y>Ribki[i]^.y) and (y<Ribki[i]^.y+64) tnen {Т.е. когда координаты одно прямоугольника совпадаюс с координатами другог}
А дальше нужно удалить значение(рыбку) из массива, но там по идее нужно как-то со смещением все делать, просто удалить наверное нельзя ... + Компилятор Delphi ругается [Error] Fishes.pas(112): 'THEN' expected but identifier 'tnen' found |
03.06.2008, 14:21 | #6 | ||
Форумчанин
Регистрация: 29.03.2008
Сообщений: 300
|
Цитата:
Цитата:
Код:
Карп преодолевший водопад становится драконом.
Последний раз редактировалось N!ckeL; 03.06.2008 в 14:24. |
||
03.06.2008, 14:31 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
03.06.2008, 14:49 | #8 |
Пользователь
Регистрация: 03.06.2008
Сообщений: 10
|
Спасибо за помощь!
У меня i - массив карпов j - массив щук For i:=1 to 10 do if (x>=Ribki[i].x) and (Ribki[i].x>x+77) and (y>=Ribki[i].y) and (y<=Ribki[i].y+64) then Ribki[i]^:=nil; For j:=1 to 5 do if (x>=Ribki[j].x) and (Ribki[j].x>x+77) and (y>=Ribki[j].y) and (y<=Ribki[j].y+64) then Ribki[j]:=New(PShuka,Init(Random(Width),Ran dom(Height),Green,Owner,Body)); Но обнулить указатель не получается [Error] Fishes.pas(115): Incompatible types: 'TFish' and 'Pointer' Последний раз редактировалось Serega123; 03.06.2008 в 15:23. |
03.06.2008, 15:31 | #9 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
|
03.06.2008, 15:52 | #10 |
Пользователь
Регистрация: 03.06.2008
Сообщений: 10
|
Помогите еще пожалуйста разобраться!
Уже часа 3 не могу понять почему не работает эта вещь: For i:=1 to 10 do if (x>=Ribki[i].x) and (Ribki[i].x+77>x) and (y>=Ribki[i].y) and (y<=Ribki[i].y+64) then Ribki[i]:=nil; Без галочки стало получше, но все равно не работает ((( Вылезает ошибка доступа: read of address 000000000 |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi.Задачи.Нужна помощь | SkaStud | Помощь студентам | 10 | 30.05.2011 23:26 |
Нужна помощь на Delphi | ВЕКО | Помощь студентам | 1 | 19.04.2008 15:48 |
Нужна ваша помощь в Delphi | Ivanich | Помощь студентам | 3 | 23.12.2007 20:06 |
Пшу диплом, нужна консультация небольшая.. | staspro | Помощь студентам | 5 | 07.08.2007 23:36 |
Нужна помощь по Delphi | Виктория 1 | Фриланс | 5 | 25.02.2007 21:21 |