01:介绍
一天,小编没事干,想做一个游戏,于是参考了大量内容,制作了这个飞行模拟器。
02:资源
02.01:准备
1、python
python IDLE (3.7 32-bit)
其他版本没有太大影响
2、panda3d(python库)
pip安装方法
pip3 install panda3d
02.02:参考
2、三角学
大学数学-平面三角学.pdf
03:上代码
from math import pi, sin, cos
from direct.showbase.ShowBase import ShowBase
from direct.showbase import DirectObject
from direct.task import Task
from direct.actor.Actor import Actor
from direct.interval.IntervalGlobal import Sequence
from panda3d.core import *
from direct.gui.DirectGui import *
from direct.gui.OnscreenText import OnscreenText
from direct.gui.OnscreenImage import OnscreenImage
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
# 禁用鼠标
self.disableMouse()
#隐藏鼠标
props = WindowProperties()
props.setCursorHidden(True)
base.win.requestProperties(props)
#设定摄像机初始位置
self.camera.setPos(0,0,100)
# 载入环境模型
self.environ = self.loader.loadModel("models/environment")
# 设置环境模型的父实例
self.environ.reparentTo(self.render)
# 对模型进行比例及位置调整
self.environ.setScale(0.25, 0.25, 0.25)
self.environ.setPos(-8, 42, 0)
# 通知任务管理器调用SpinCameraTask控制相机
self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")
# 载入熊猫角色
self.pandaActor = Actor("models/panda-model",
{
"walk": "models/panda-walk4"})
self.pandaActor.setScale(0.005, 0.005, 0.005)
self.pandaActor.reparentTo(self.render)
# 动画循环
self.pandaActor.loop("walk")
# 创建四幕
PosInterval1 = self.pandaActor.posInterval(13,
Point3(0, -10, 0),
startPos=Point3(0, 10, 0))
PosInterval2 = self.pandaActor.posInterval(13,
Point3(0, 10, 0),
startPos=Point3(0, -10, 0))
HprInterval1 = self.pandaActor.hprInterval(3,
Point3(180, 0, 0),
startHpr=Point3(0, 0, 0))
HprInterval2 = self.pandaActor.hprInterval(3,
Point3(0, 0, 0),
startHpr=Point3(180, 0, 0))
# 创建情节并运行四幕2
self.pandaPace = Sequence(PosInterval1,
HprInterval1,
PosInterval2,
HprInterval2