python使用panda3d制作飞行模拟器

本文介绍了作者利用Python和Panda3D库制作飞行模拟器的过程。首先,文章提到了所需的资源,包括Python环境和Panda3D库的安装。接着,作者分享了代码实现,玩家通过鼠标控制飞行方向,碰到地面则游戏结束。最后,作者鼓励读者尝试简化程序或添加物理效应,并呼吁尊重原创,转载请注明出处。
摘要由CSDN通过智能技术生成

01:介绍

一天,小编没事干,想做一个游戏,于是参考了大量内容,制作了这个飞行模拟器。

02:资源

02.01:准备

1、python
python IDLE (3.7 32-bit)
其他版本没有太大影响

2、panda3d(python库)
pip安装方法

pip3 install panda3d

02.02:参考

1、panda3d
panda3d官网
谷歌翻译

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
  • 19
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值