用户:
盗码师查看: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_编程猫_搓头"
盗码师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
评论
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
评论