Java小游戏学习笔记
程序员文章站
2022-04-15 19:04:55
图片的插入图片的插入之前的方法太过于繁琐,所以我们可以在对象中直接打印图片在测试类里缩减代码量代码如下: //人物图片public static Image image= CommonUtils.getImage("images/body/s-left.png");//人物横坐标private int x;//人物纵坐标private int y;//宽private int width;//高private int height;//速度private...
图片的插入
** 图片的插入之前的方法太过于繁琐,所以我们可以
在对象中直接打印图片在测试类里缩减代码量 **
代码如下:
//人物图片
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