Java小游戏学习笔记二

图片的插入

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

	代码如下:
			 //人物图片
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;
    }

可以代入图片观察方向变化坐标改动
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值