引言:

	Java保姆级教程是笔者在暑假时,为学弟们准备的java游戏教程,今天整理了一下,共享给网友们,笔者也是学生,若有大神发现文中存在误区,还请私信笔者。

注:java游戏保姆级教程,正在制作中,目前只出了一期,由于咱们春节活动较多,后续会在在春节过后再进行快速更新。-—— zwk

什么是游戏?一个游戏首先要具备以下三条
1、规则:游戏之所以是游戏是因为有规则(怎么玩、怎么赢、怎么通关)
2、目的:一个清晰的胜负目标(如何赢?为什么要赢?)
3、升级:可以学习的升级技巧(如何才能更快、得到高分、顺利通关)

游戏动起来什么原理

位置的如何移动?
在3D游戏中:
3D游戏世界是一个三维立体世界,和我们和现实中的世界相似,我们游戏中的所有角色,都会在这个三维的世界里面出生、移动、交互直至死亡。除了角色以外,游戏中的其他对象也是如此产生的,比如说建筑、武器、道具等等。他们身上都保存着自己的坐标位置,当我们在移动我们的角色的时,其实就是在不断的修改当前角色的坐标值,坐标值包含X,Y,Z。
3D游戏中X,Y,Z 分别代表什么:
举例现实生活中的一个例子,大家都知道在地球上确定一个地点需要纬度(X)和经度(Y),知道一个点的纬度(X)和经度(Y),便可以精准的定位到一个点,那么我们要确定一个飞机的位置怎么定位呢?这时候除了X、Y,还需要引出一个Z也就是飞机的高度,可以是距离地面观测点的高度,也可以是距离卫星的高度,得到一个飞机的X,Y,Z就可以在三维世界定位一个物体,同理,在3D游戏中也是改变物体的X,Y,Z即可移动物体的位置。

2D游戏游戏中:

2d是平面,那么物体和面的关系只有X,Y的关系,也就是说只要改变X,Y坐标即可移动物体的位置,为了方便大家理解,制作了下图。
紫色矩形,代表游戏的窗体,为方便,我们假设这个窗体宽高为Width,Height(300,200);窗体的左上角为原点x,y(0,0) ,x的范围:0-300(原点—窗体的宽度),y的范围:0-200(原点—窗体的高度),
X坐标的方向,从窗体左上角至窗体的右上角为增长,反之减少,Y坐标的方向,从窗体左上角至左下角为增长,反之减少。那么在窗体中的物体(例如坦克)的移动,就是在初始坐标基础上的x,y坐标的改变。

2d游戏中,物体本身怎么动起来?:

首先要了解 帧数
帧数:是指一秒钟快速出现的静态图片的数量,每张静态的图片就是一帧,快速连续地显示帧便形成了运动的假象,因此高的帧率可以得到更流畅、更逼真的动画。
例:下面是8张人物跑动的静态图片

当设置0.2秒切换一次图片时已经可以看到人物动起来了,这就是2d游戏中物体运动的原理。

同理:当你使用Frame创建窗体时,就是一帧定格不动的画面,那么如果想让你的游戏动起来,那么除了改变游戏的x,y之外,还需要设置定时刷新Frame窗体,这就是大家在学习网上的坦克大战时,总是会有这么一段代码

public static void main(String[] args){
    TankFrame myFrame=new TankFrame();
    // 创建线程并开启
    new Thread(){
        // 实现Runnable接口
        public void run(){
            try{
                // 重画
                myFrame.repaint();
                 // 线程休眠50毫秒
                // 数值越小刷新速度越快,线程消耗资源越大 
                Thread.sleep(50);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
        }
    }.start();
}

更多推荐

java保姆级教程—— 1.什么是游戏