Я пытаюсь сделать pacman, и я сделал несколько столкновений:Можно ли как-нибудь сократить этот код столкновения?
Так что это только столкновение для верхней стены, но это не нужно. Вот изображение http://i.epvpimg.com/XsXvg.png Итак, как работает моя игра, у меня есть много форм, в которых пакман прыгает, если он ходит так немного, как урожай. Это не идеальное движение, но это не главное.
Код говорит: Если pacman (Shape1) находится в том же месте, что и другие фигуры, то вы не можете подняться.
Так что я хочу знать. Есть ли способ сократить код с помощью массивов или каким-то образом.
// COLLISION
IF (Shape1.Top=Shape30.Top)
or (Shape1.Top=Shape41.Top) and (Shape1.Left=Shape41.Left)
or (Shape1.Top=Shape42.Top) and (Shape1.Left=Shape42.Left)
or (Shape1.Top=Shape56.Top) and (Shape1.Left=Shape56.Left)
or (Shape1.Top=Shape57.Top) and (Shape1.Left=Shape57.Left)
or (Shape1.Top=Shape58.Top) and (Shape1.Left=Shape58.Left)
or (Shape1.Top=Shape72.Top) and (Shape1.Left=Shape72.Left)
or (Shape1.Top=Shape74.Top) and (Shape1.Left=Shape74.Left)
or (Shape1.Top=Shape76.Top) and (Shape1.Left=Shape76.Left)
or (Shape1.Top=Shape118.Top) and (Shape1.Left=Shape118.Left)
or (Shape1.Top=Shape120.Top) and (Shape1.Left=Shape120.Left)
or (Shape1.Top=Shape122.Top) and (Shape1.Left=Shape122.Left)
or (Shape1.Top=Shape143.Top) and (Shape1.Left=Shape143.Left)
or (Shape1.Top=Shape144.Top) and (Shape1.Left=Shape144.Left)
or (Shape1.Top=Shape160.Top) and (Shape1.Left=Shape160.Left)
or (Shape1.Top=Shape162.Top) and (Shape1.Left=Shape162.Left)
or (Shape1.Top=Shape175.Top) and (Shape1.Left=Shape175.Left)
or (Shape1.Top=Shape176.Top) and (Shape1.Left=Shape176.Left)
or (Shape1.Top=Shape192.Top) and (Shape1.Left=Shape192.Left)
or (Shape1.Top=Shape194.Top) and (Shape1.Left=Shape194.Left)
or (Shape1.Top=Shape167.Top) and (Shape1.Left=Shape167.Left)
or (Shape1.Top=Shape168.Top) and (Shape1.Left=Shape168.Left)
or (Shape1.Top=Shape182.Top) and (Shape1.Left=Shape182.Left)
or (Shape1.Top=Shape184.Top) and (Shape1.Left=Shape184.Left)
or (Shape1.Top=Shape186.Top) and (Shape1.Left=Shape186.Left)
or (Shape1.Top=Shape235.Top) and (Shape1.Left=Shape235.Left)
or (Shape1.Top=Shape267.Top) and (Shape1.Left=Shape267.Left)
or (Shape1.Top=Shape289.Top) and (Shape1.Left=Shape289.Left)
or (Shape1.Top=Shape219.Top) and (Shape1.Left=Shape219.Left)
or (Shape1.Top=Shape220.Top) and (Shape1.Left=Shape220.Left)
or (Shape1.Top=Shape221.Top) and (Shape1.Left=Shape221.Left)
or (Shape1.Top=Shape269.Top) and (Shape1.Left=Shape269.Left)
or (Shape1.Top=Shape273.Top) and (Shape1.Left=Shape273.Left)
or (Shape1.Top=Shape283.Top) and (Shape1.Left=Shape283.Left)
or (Shape1.Top=Shape284.Top) and (Shape1.Left=Shape284.Left)
or (Shape1.Top=Shape230.Top) and (Shape1.Left=Shape230.Left)
or (Shape1.Top=Shape231.Top) and (Shape1.Left=Shape231.Left)
or (Shape1.Top=Shape232.Top) and (Shape1.Left=Shape232.Left)
or (Shape1.Top=Shape246.Top) and (Shape1.Left=Shape246.Left)
or (Shape1.Top=Shape248.Top) and (Shape1.Left=Shape248.Left)
or (Shape1.Top=Shape250.Top) and (Shape1.Left=Shape250.Left)
or (Shape1.Top=Shape262.Top) and (Shape1.Left=Shape262.Left)
or (Shape1.Top=Shape263.Top) and (Shape1.Left=Shape263.Left)
or (Shape1.Top=Shape264.Top) and (Shape1.Left=Shape264.Left)
or (Shape1.Top=Shape278.Top) and (Shape1.Left=Shape278.Left)
or (Shape1.Top=Shape280.Top) and (Shape1.Left=Shape280.Left)
or (Shape1.Top=Shape282.Top) and (Shape1.Left=Shape282.Left)
or (Shape1.Top=Shape294.Top) and (Shape1.Left=Shape294.Left)
or (Shape1.Top=Shape303.Top) and (Shape1.Left=Shape303.Left)
or (Shape1.Top=Shape320.Top) and (Shape1.Left=Shape320.Left)
or (Shape1.Top=Shape322.Top) and (Shape1.Left=Shape322.Left)
or (Shape1.Top=Shape335.Top) and (Shape1.Left=Shape335.Left)
or (Shape1.Top=Shape336.Top) and (Shape1.Left=Shape336.Left)
or (Shape1.Top=Shape309.Top) and (Shape1.Left=Shape309.Left)
or (Shape1.Top=Shape339.Top) and (Shape1.Left=Shape339.Left)
or (Shape1.Top=Shape357.Top) and (Shape1.Left=Shape357.Left)
then
begin
Up:=false;
end;
Это, безусловно, совершенно неправильный подход к графическому приложению. Вы должны делать все свое рисование самостоятельно, не используя элементы управления - и эти строки должны быть виртуальными. Вы будете вести больше кошмаров, как это дальше, чем дальше. –
Да, вы можете сократить этот код с помощью массивов. И да, использование элементов управления для ваших актеров - плохая идея. –
Хорошо Спасибо. Знаете ли вы, как я могу сократить его? И да, новичок, и я не знаю больше этого. – HDGoldenGaming