Итак, я пытаюсь создать игру frogger. Пока я создал квадрат, который является лягушкой, которая перемещается клавишами со стрелками, а также я получил прямоугольники отскакивают от стен, которые являются врагами. Проблема, в которой я сейчас застреваю, - это создать систему столкновений, где, если лягушка попадет в любой из прямоугольников, игра заканчивается. Я пробовал использовать этот код, но он ничего не делал, любые советы были бы полезны благодаря!Создание игры frogger, но столкнувшись с проблемой с системой столкновений
if(SquareX == RectangleX && SquareY == RectangleY)
{
break;
}
import java.awt.event.KeyEvent;
public class frogger
{
static double SquareR = .02;
static double SquareX = .5;
static double SquareY = .02;
static double xMovement = 0;
static double yMovement = 0;
static double halfWidth = .05;
static double halfHeight = .02;
static double RectangleY = .1;
static double RectangleX = .5;
static double RectangleSpeedY = 0;
static double RectangleSpeedX = .020;
static double RectangleX1 = .5;
static double RectangleSpeedX1 = .030;
static double RectangleX2 = .5;
static double RectangleSpeedX2 = .035;
static double RectangleX3 = .5;
static double RectangleSpeedX3 = .040;
static double RectangleX4 = .5;
static double RectangleSpeedX4 = .043;
static double RectangleX5 = .5;
static double RectangleSpeedX5 = .046;
static double RectangleX6 = .5;
static double RectangleSpeedX6 = .050;
static double RectangleX7 = .5;
static double RectangleSpeedX7 = .055;
public static void drawscene()
{
StdDraw.clear();
StdDraw.filledSquare(SquareX, SquareY, SquareR);
StdDraw.filledRectangle(RectangleX, RectangleY , halfWidth, halfHeight);
StdDraw.filledRectangle(RectangleX1, RectangleY + .1 , halfWidth, halfHeight);
StdDraw.filledRectangle(RectangleX2, RectangleY + .23, halfWidth, halfHeight);
StdDraw.filledRectangle(RectangleX3, RectangleY + .37 , halfWidth, halfHeight);
StdDraw.filledRectangle(RectangleX4, RectangleY + .5, halfWidth, halfHeight);
StdDraw.filledRectangle(RectangleX5, RectangleY + .6, halfWidth, halfHeight);
StdDraw.filledRectangle(RectangleX6, RectangleY + .75, halfWidth, halfHeight);
StdDraw.filledRectangle(RectangleX7, RectangleY + .87, halfWidth, halfHeight);
StdDraw.show(1000/24);
}
public static void updateDirection()
{
RectangleX += RectangleSpeedX;
RectangleX1 += RectangleSpeedX1;
RectangleX2 += RectangleSpeedX2;
RectangleX3 += RectangleSpeedX3;
RectangleX4 += RectangleSpeedX4;
RectangleX5 += RectangleSpeedX5;
RectangleX6 += RectangleSpeedX6;
RectangleX7 += RectangleSpeedX7;
if (RectangleX >= .98)
{
RectangleSpeedX*= -1;
}
if (RectangleX <= .02)
{
RectangleSpeedX*= -1;
}
if (RectangleX1 >= .98)
{
RectangleSpeedX1 *= -1;
}
if (RectangleX1 <= .02)
{
RectangleSpeedX1 *= -1;
}
if (RectangleX2 >= .98)
{
RectangleSpeedX2 *= -1;
}
if (RectangleX2 <= .02)
{
RectangleSpeedX2 *= -1;
}
if (RectangleX3 >= .98)
{
RectangleSpeedX3 *= -1;
}
if (RectangleX3 <= .02)
{
RectangleSpeedX3 *= -1;
}
if (RectangleX4 >= .98)
{
RectangleSpeedX4 *= -1;
}
if (RectangleX4 <= .02)
{
RectangleSpeedX4 *= -1;
}
if (RectangleX5 >= .98)
{
RectangleSpeedX5 *= -1;
}
if (RectangleX5 <= .02)
{
RectangleSpeedX5 *= -1;
}
if (RectangleX6 >= .98)
{
RectangleSpeedX6 *= -1;
}
if (RectangleX6 <= .02)
{
RectangleSpeedX6 *= -1;
}
if (RectangleX7 >= .98)
{
RectangleSpeedX7 *= -1;
}
if (RectangleX7 <= .02)
{
RectangleSpeedX7 *= -1;
}
if (StdDraw.isKeyPressed(KeyEvent.VK_UP))
{
SquareY += .01;
}
else if(StdDraw.isKeyPressed(KeyEvent.VK_DOWN))
{
SquareY -= .01;
}
else if(StdDraw.isKeyPressed(KeyEvent.VK_LEFT))
{
SquareX -= .01;
}
else if(StdDraw.isKeyPressed(KeyEvent.VK_RIGHT))
{
SquareX += .01;
}
}
public static void main(String[] args)
{
while(true)
{
frogger.drawscene();
frogger.updateDirection();
if (SquareX >= 1)
{
break;
}
if (SquareX <= 0)
{
break;
}
if(SquareY >= 1)
{
break;
}
if(SquareX == RectangleX && SquareY == RectangleY)
{
break;
}
}
}
}`