Показать сообщение отдельно
Старый 30.08.2007, 17:37   #1
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Взрыв бомбочки

У меня в игре есть массив. В нем хранится вся инфа.
Массив 16 на 16
например пробиваемый кубик там значится как 2, бомба как 4.
Проходимые места это 0. Непроходимые и непробиваемые это 1

Игра - бомбермен. Так вот
111111 - как бы тут получается, что есть поле, окруженное
100001 - непробиваемыми объектами. Есть на поле так же бомба.
100001 - рядом с бомбой 2 пробиваемых кубика. Радиус у бомбы - 3
104221 - то есть если она сработает, то порбиваемые кубики превратятся в 0
100001
111111
То ест станет
111111 - тут взорвалась и исчезла бомба. Изчезли и взорвались кубики
100001
100001
100001
100001
111111
А мне нужно:
111111 - что бы бомба, после того как взорвалась убила только ближайший
100001 - кубик, а тот,Ю который за ней остался жить
100001
100001
100021
100001

Сложность в том, что взрыв делается следующим образом:
distX%=bomb\ArX-partitionable\Arx - По массиву вычисляется расстояние от объекта, который взорвется до бомбы

If Abs(distz)<bomb\radius - если получившаяся дистанция меньше радиуса взрыва

partitionable\life=0 - то грубо говоря убиваем кубик.

А мне нужно как-то проверить, что на данной линии один кубик уже убили, а тот, который за ним, не должен взорваться. Мне предложили метод, но почему-то не сработало:

For z=partitionable\Arz To bomb\ArX
If Playfield(partitionable\Arx,z)<>0 Nevzrivatj=True
Next

Я честное слово точно не знаю как это работает)
partitionable\Arx - массив кубика по х
bomb\arX - массив бомбы по оси х
Я думаю нет смысла показывать, так как для оси z то же самое

Короче я долго мучался и не знаю как это организовать, поэтому прошу помощи
(Offline)
 
Ответить с цитированием