0
所以我想創建一個蛙類遊戲,到目前爲止我已經創建了青蛙的方形按鍵,我也得到了矩形從敵人的牆壁上彈開,我目前所堅持的問題是試圖創建一個碰撞系統,如果青蛙撞到任何遊戲結束的矩形。我嘗試使用此代碼,但它沒有做任何事情,任何提示將有幫助謝謝!創建遊戲蛙類遊戲,但遇到與碰撞系統問題
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;
}
}
}
}`