Помогите с игрой Pacman на Turbo C++... я в отчаянии=(

  • Автор темы Guest
  • Дата начала
G

Guest

#1
сейчас пишу игру Pacman.... дали такое задание в колледже
написал безумный код на монетки, которые он поедает, вышло на 1500 строк... использовал оператор If и For... и монетки в 3-х верхних рядах не жрет...
кто нибудь может помочь укоротить все это???
знаю, что нужно поле, на котором это все находится, запихнуть в массив, в адресах которого будут эти монетки и через...
вот примерно как выглядит массив
TShape*mas[500][600];
for(int i=0;i<500*600;i++) mas[0]=new TShape(Owner);

показывает ошибку на функцию класса (Stack OverFlow)...
я в отчаянии, ко вторнику нужно сделать, вожусь около недели...
помогите мне с этим пожалуйста!!

P.S. делаю в Turbo C++, в визуальном редакторе, монетки имеют тип TShape....

Вот как выглядит моя игра сейчас:
Pacman

помогите, я в отчаянии((
 
X

Xakep

#2
Делай для объектов метки, например в классе TShape создай новую переменную id ну и проверяй на столкновения подобным образом:
Код:
for (i = 0; i < 500; i++) {
if (Shape[i]->id == "money") {
проверка на столкновения
}
}
 
E

Emme

#3
я сделал помню все монетки в стиле a(1) a(2) a(3) и потом через цикл через for сделал оптимизацию,чтобы 400 строк не писать.
У каждой монетки есть координата х и у (a_x(1) a_y(1))
Тогда все просто делается.

Например:
Код:
for s=1 to 100

if a_x(s)> my_x-10 AND a_x(s)<my_x+10 AND a_y(s)> my_x-10 Or a_y(s)<my_y+10THEN a(s)=0:a_x(s)=0:a_y(s)=0:

next s
 
Z

Zato

#4
я сделал помню все монетки в стиле a(1) a(2) a(3) и потом через цикл через for сделал оптимизацию,чтобы 400 строк не писать.
У каждой монетки есть координата х и у (a_x(1) a_y(1))
Тогда все просто делается.

Например:

for s=1 to 100

if a_x(s)> my_x-10 AND a_x(s)<my_x+10 AND a_y(s)> my_x-10 Or a_y(s)<my_y+10THEN a(s)=0:a_x(s)=0:a_y(s)=0:

next s
А многомерный массив не упростил бы работу?