2015-12-03 96 views
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; 
     } 
     } 
    } 
}` 

回答

0

我敢肯定你是从您的其他职位here得到这个问题的答案。