62,614
社区成员
发帖
与我相关
我的任务
分享
package Game;
import java.awt.Point;
import java.awt.event.KeyEvent;
import com.rupeng.game.GameCore;
public class HitBricks implements Runnable
{
@Override
public void run()
{
//初始化游戏界面
GameCore.setGameTitle("打砖块小游戏");
GameCore.setGameSize(1200, 800);
GameCore.loadBgView("lvsebg.jpg");
//初始化游戏中的挡板
GameImage imgBoard =new GameImage("board.jpg");
imgBoard.setPostion(470, 720);
//初始化游戏中的球
GameSprite spriteBall=new GameSprite("ball1");
spriteBall.setPostion(300, 500);
spriteBall.playAnimate("rotate");
int ballVX=GameCore.rand(1, 3);
int ballVY=GameCore.rand(-2, 0);;
//初始化游戏中的砖块
BrickInfo[][] bricks =new BrickInfo[10][12];
for(int i=0;i<bricks.length;i++)
{
BrickInfo[] brickRows=bricks[i];
for(int j=0;j<brickRows.length;j++)
{
brickRows[j]=new BrickInfo();
boolean a = GameCore.rand(0, 2)==0?true:false;
brickRows[j].setHasBrick(a);
}
}
for(int i=0;i<bricks.length;i++)
{
BrickInfo[] brickRows=bricks[i];
for(int j=0;j<brickRows.length;j++)
{
BrickInfo brickInfo = brickRows[j];
if(brickInfo.isHasBrick())
{
GameImage imgBrick=new GameImage("brick.jpg");
imgBrick.setPostion(j*100, i*20);
brickRows[j].setImgBrick(imgBrick);
}
}
}
//游戏循环开始
while(true)
{
//左右按键控制游戏中的挡板
int keycode =GameCore.getPressedKeyCode();
if(keycode==KeyEvent.VK_LEFT&&imgBoard.getPostion().x>0)
{
imgBoard.moveLeft(15);
}
else if(keycode==KeyEvent.VK_RIGHT&&imgBoard.getPostion().x+imgBoard.getSize().width<GameCore.getGameWidth())
{
imgBoard.moveRight(15);
}
//游戏中小球的方向速度控制
Point posBall=spriteBall.getPostion();
int xBall=posBall.x;
int yBall=posBall.y;
xBall+=ballVX*6;
yBall+=ballVY*6;
spriteBall.setPostion(xBall, yBall);
if(xBall==0||xBall+spriteBall.getSize().width>=GameCore.getGameWidth())
{
ballVX=-ballVX;
}
if(yBall==0||imgBoard.isIntersectWith(spriteBall))
{
ballVY=-ballVY;
}
//球和砖块碰撞后的逻辑处理
for(BrickInfo[] brickRow:bricks)
{
for (BrickInfo brick : brickRow)
{
if (brick.isHasBrick() && brick.getImgBrick().isIntersectWith(spriteBall))
{
brick.setHasBrick(false);
brick.getImgBrick().hide();
ballVY = -ballVY;
}
}
}
if(yBall==GameCore.getGameHeight())
{
GameCore.alert("GAME OVER");
}
}
}
public static void main(String[] args)
{
GameCore.start(new HitBricks());
}
}
//游戏中砖块的信息
class BrickInfo
{
boolean hasBrick;
GameImage imgBrick;
public BrickInfo()
{
}
public boolean isHasBrick()
{
return hasBrick;
}
public void setHasBrick(boolean hasBrick)
{
this.hasBrick = hasBrick;
}
public GameImage getImgBrick()
{
return imgBrick;
}
public void setImgBrick(GameImage imgBrick)
{
this.imgBrick = imgBrick;
}
}