中山大学-3D游戏-牧师与恶魔

游戏对象运动的本质

实际上游戏对象的运动是游戏对象随着游戏时间空间位置、旋转角度以及大小的变化,通过矩阵变换来实现游戏对象空间属性的改变。

抛物线运动

首先我想到的是可以直接根据公式调整物体的位置:

中山大学-3D游戏-牧师与恶魔

其次我查询资料发现物体拥有重力属性,于是又有一种方法:

中山大学-3D游戏-牧师与恶魔

最后,我采用不同的方法去运用原本的公式,这样最后一种方法也有了

中山大学-3D游戏-牧师与恶魔

太阳系模拟

我们首先创建太阳系以及八大行星

中山大学-3D游戏-牧师与恶魔

然后稍微改变一下球的大小和位置

中山大学-3D游戏-牧师与恶魔

然后将太阳系贴图贴上

中山大学-3D游戏-牧师与恶魔

然后根据之前写过的代码,进行类似的操作,代码如下

中山大学-3D游戏-牧师与恶魔

最后效果

中山大学-3D游戏-牧师与恶魔

牧师与恶魔

游戏中的事物

牧师、恶魔、船、河流、河岸

规则表

状态 操作 结果
牧师或者恶魔在河岸上,且船在该河岸有空位 点击牧师或者恶魔 牧师或者恶魔上船
牧师或者恶魔在船上 点击牧师或者恶魔 牧师或者恶魔上岸
某一河岸上恶魔数量大于牧师 (None) 玩家失败
牧师和恶魔都渡过河 (None) 玩家成功

对象

对象 代表意思
蓝色球体 牧师
红色长方体 恶魔
蓝色长方体
灰色长方体 河岸
棕色长方体

代码

Director:导演类采用了单实例的方法,拥有全局属性,这样就可以在

中山大学-3D游戏-牧师与恶魔

SceneController:场记控制器

中山大学-3D游戏-牧师与恶魔

FirstController:场景控制器,为SceneController的实例,对于场景进行加载,为此我们需要将游戏对象做成预设,这样就可以直接创建。

中山大学-3D游戏-牧师与恶魔

中山大学-3D游戏-牧师与恶魔

中山大学-3D游戏-牧师与恶魔

中山大学-3D游戏-牧师与恶魔

中山大学-3D游戏-牧师与恶魔

中山大学-3D游戏-牧师与恶魔

中山大学-3D游戏-牧师与恶魔

中山大学-3D游戏-牧师与恶魔

Boat:

中山大学-3D游戏-牧师与恶魔

IUserAction:

中山大学-3D游戏-牧师与恶魔

Move:

中山大学-3D游戏-牧师与恶魔

Role:

中山大学-3D游戏-牧师与恶魔中山大学-3D游戏-牧师与恶魔

UserGUI:

中山大学-3D游戏-牧师与恶魔

游戏过程截图:

初始界面:

中山大学-3D游戏-牧师与恶魔
上船:

中山大学-3D游戏-牧师与恶魔
船的移动:

中山大学-3D游戏-牧师与恶魔
win:

中山大学-3D游戏-牧师与恶魔

Lose:

7IghVHU-1601712048514)]
船的移动:

[外链图片转存中…(img-EPRWBd4N-1601712048514)]
win:

[外链图片转存中…(img-xD4OQSlZ-1601712048514)]

Lose:

中山大学-3D游戏-牧师与恶魔