猫史档案馆


Python3D游戏制作教程

用户:盗码师盗码师查看:0 回复:5 评论:0 创建时间:2022-07-09T08:13:37


  ............................................................................................................ python的3D游戏库是Panda3d 先下载好这个库 然后看代码: frommathimportpi,sin,cos frommathimportpi,sin,cos frommathimportpi,sin,cos fromdirect.showbase.ShowBaseimportShowBase fromdirect.showbase.ShowBaseimportShowBase fromdirect.taskimportTask fromdirect.actor.ActorimportActor fromdirect.interval.IntervalGlobalimportSequence frompanda3d.coreimportPoint3 classMyApp(ShowBase): def__init__(self): ShowBase.__init__(self) #禁用鼠标 self.disableMouse() #载入环境模型 self.environ=self.loader.loadModel("models/environment") #设置环境模型的父实例 self.environ.reparentTo(self.render) self.environ.reparentTo(self.render) 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)) #创建情节并运行四幕 self.pandaPace=Sequence(PosInterval1, HprInterval1, PosInterval2, HprInterval2, name="pandaPace") self.pandaPace.loop() #定义旋转相机 defspinCameraTask(self,task): angleDegrees=task.time*6.0 angleRadians=angleDegrees*(pi/180.0) self.camera.setPos(20*sin(angleRadians),-20.0*cos(angleRadians),3) self.camera.setHpr(angleDegrees,0,0) returnTask.cont app=MyApp() app.run() 效果图: 不错吧 这个场景是panda3d中自带的场景 其他的自己摸索吧 imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E6%90%93%E5%A4%B4.gif"alt="emotion_编程猫_搓头"      


回复

上一页1 页 / 共 1下一页
盗码师盗码师

center_image

 

 

 

 

 

 

点赞0


评论


盗码师盗码师

空格都没了,空格自己敲吧

点赞0


评论


盗码师盗码师

from math import pi, sin, cos

from math import pi, sin, cos

from math import pi, sin, cos

from direct.showbase.ShowBase import ShowBase

from direct.showbase.ShowBase import ShowBase

from direct.task import Task

from direct.actor.Actor import Actor

from direct.interval.IntervalGlobal import Sequence

from panda3d.core import Point3


class MyApp(ShowBase):


    def __init__(self):


        ShowBase.__init__(self)

        # 禁用鼠标

        self.disableMouse()

        # 载入环境模型

        self.environ = self.loader.loadModel("models/environment")

        # 设置环境模型的父实例

        self.environ.reparentTo(self.render)

        self.environ.reparentTo(self.render)

        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))

        # 创建情节并运行四幕

        self.pandaPace = Sequence(PosInterval1,

                                HprInterval1,

                                PosInterval2,

                                HprInterval2,

                                name="pandaPace")

        self.pandaPace.loop()

    # 定义旋转相机


    def spinCameraTask(self, task):


        angleDegrees = task.time * 6.0

        angleRadians = angleDegrees * (pi / 180.0)

        self.camera.setPos(20 * sin(angleRadians), -20.0 * cos(angleRadians), 3)

        self.camera.setHpr(angleDegrees, 0, 0)

        return Task.cont

app = MyApp()

app.run()

点赞0


评论


玛卡巴卡126玛卡巴卡126

666

点赞0


评论


#逸一时误一世##逸一时误一世#

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E5%8E%89%E5%AE%B3%E4%BA%86.gif"alt="emotion_编程猫_厉害了"

点赞0


评论