现实生活中,有很多物体,每个物体的长相、行为都不同。
物体存在于不同的空间内,它只在这个空间内发生作用。
物体没用了,空间就把它剔除,不然既占地方,又需要花精力管理。
需要它的时候,就把它造出来,不需要它的时候,就把它销毁。
按照面向对象的设计思想,游戏里的物体,我们也把它定义为一个类。
一个类就定义了一种物体的属性、行为。类是对象的模板,对象是类的实例。
我们用一个集合,把所有的游戏物体都放在里面,对它们进行统一的管理。
随着游戏线程的运行,集合里的物体,它们的逻辑和绘制也不断被调用执行。
我这里实现一个例子:游戏里,鼠标点击哪里,哪里就出现一个方块,方块先向上
运动,再往下,当掉落出屏幕后,方块就从游戏中消除。注意方块的加速度机制。
package game7;
import java.awt.Color;
import java.awt.Graphics;
/**
* java游戏开发杂谈
* ---demo7:游戏物体
*
* @author 台哥编程课堂
* https://blog.youkuaiyun.com/chaohi
*
* @date 2019-04-25
*/
public class FangKuai extends GameObject{
private GamePanel panel;
public FangKuai(GamePanel panel){
this.panel = panel;
}
//纵坐标超出多少,就销毁
public int limit_y ;
private int u = -10; //速度
private int a = 1; //加速度
@Override
public void logic() {
x = x + 1;
y = y + u;
u = u + a;
if(y > limit_y){
destory();
}
}
@Overr