Java小游戏学习笔记

2022-07-28,,

图片的插入

** 图片的插入之前的方法太过于繁琐,所以我们可以
在对象中直接打印图片在测试类里缩减代码量 **

	代码如下:
			 //人物图片
public static Image image= CommonUtils.getImage("images/body/s-left.png");
//人物横坐标
private int x;
//人物纵坐标
private int y;
//宽
private int width;
//高
private int height;
//速度
private int speed;
//游戏窗体属性 因为小丑要在窗体中画画
private GameClinet gameClinet;

之后要设置有参构造方法设置初始值,并使用get,set方法获取初始值

		代码如下:
				public Buffoon(){

}
public Buffoon(int x,int y,GameClinet gameClinet){
    this.x=x;
    this.y=y;
    this.width=50;
    this.height=50;
    this.speed=5;
    this.gameClinet=gameClinet;
}
 //生成get,set方法
public int getX() {
    return x;
}

public void setX(int x) {
    this.x = x;
}

public int getY() {
    return y;
}

public void setY(int y) {
    this.y = y;
}

public int getWidth() {
    return width;
}

public void setWidth(int width) {
    this.width = width;
}

public int getHeight() {
    return height;
}

public void setHeight(int height) {
    this.height = height;
}

public int getSpeed() {
    return speed;
}

public void setSpeed(int speed) {
    this.speed = speed;
}

对象可以再自己的类中直接在窗口显示,所以也该有个画笔的方法进行显示

	代码如下:
	/**
 * 小丑里有自己的画画方法
 */
    public void paint(Graphics g){
    g.drawImage(image,this.x,this.y,this.width,this.height,this.gameClinet);
    }

最后在回到测试类中创建对象:直接使用画笔方法带入就可以了,这样简便了量的代码,使得测试类变得简洁

	如下代码:
	         /**
 * 画画,重写父类的paint方法
 * Graphics 画笔类
 * @param g
 */
@Override
public void paint(Graphics g) {
    //画背景
   g.drawImage(image,0,0,1000,700,this);
   //墙体
   wall.paint(g);
    //爆炸物
   explode.paint(g);
    //画小丑
    buffoon.paint(g);
   //子弹
    missile.paint(g);
}

人物如何移动

	首先:
			小丑类方法要素      移动
				移动需要方向  定义一个方法move
				判断方向,之后X与Y坐标的变动更改
	代码如下:
	创建方法后使用IF判断方向与其相应的X,Y位置变动
	
	 public void move(String dir){
    if ("U".equals(dir)){
        this.y=this.y-this.speed;
    }
    if ("R".equals(dir)){
        this.x=this.x+this.speed;
    }
    if ("D".equals(dir)) {
        this.y=this.y+this.speed;
    }
    if ("L".equals(dir)){
        this.x=this.x-this.speed;
    }
    if ("UR".equals(dir)) {
        this.y=this.y-this.speed;
        this.x=this.x+this.speed;
    }
    if ("UL".equals(dir)){
        this.y=this.y-this.speed;
        this.x=this.x-this.speed;
    }
    if ("DR".equals(dir)){
        this.x=this.x+this.speed;
        this.y=this.y+this.speed;
    }
    if ("DL".equals(dir)) {
        this.y=this.y+this.speed;
        this.x=this.x-this.speed;
    }

可以代入图片观察方向变化坐标改动

本文地址:https://blog.csdn.net/MyonlyloveLAX/article/details/109616080

《Java小游戏学习笔记.doc》

下载本文的Word格式文档,以方便收藏与打印。