انجین بازی سازی پاندا

مدتی توی ساعات بی حوصله گی Ori و Blind Forest بازی میکردم سوال شده شده بود برام که چطوری تکسچر های سه بعدی رندر میشن کمی جستجو رسیدن به گیم انجین پاندا که چارچوب توسعه پایتونی برای رندر گرافیکی و بازی سازی هست

Hello world به سبک پاندا :grin:

from direct.showbase.ShowBase import ShowBase
from direct.task import Task
from math import pi, sin, cos
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.scene = self.loader.loadModel("environment")
        self.scene.reparentTo(self.render)
        self.scene.setScale(0.25, 0.25, 0.25)
        self.scene.setPos(-8, 42, 0)

        self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")

        self.pandaActor = Actor("panda-model", {"walk": "panda-walk4"})
        self.pandaActor.setScale(0.005, 0.005, 0.005)
        self.pandaActor.reparentTo(self.render)
        self.pandaActor.loop("walk")

        pandaPosInterval1 = self.pandaActor.posInterval(13,
                                                        Point3(0, -10, 0),
                                                        startPos=Point3(0, 10, 0))
        pandaPosInterval2 = self.pandaActor.posInterval(13,
                                                        Point3(0, 10, 0),
                                                        startPos=Point3(0, -10, 0))
        pandaHprInterval1 = self.pandaActor.hprInterval(3,
                                                        Point3(180, 0, 0),
                                                        startHpr=Point3(0, 0, 0))
        pandaHprInterval2 = self.pandaActor.hprInterval(3,
                                                        Point3(0, 0, 0),
                                                        startHpr=Point3(180, 0, 0))
 
        self.pandaPace = Sequence(pandaPosInterval1,
                                  pandaHprInterval1,
                                  pandaPosInterval2,
                                  pandaHprInterval2,
                                  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()

3 پسندیده

لطفا از بازی سازی چیزی نزارید آدم جذب می شه شیطون گولوش بزنه وسط پروژه خودش بی خیال بشه بره یکی از موتور هارو یاد بگیره :smile:

2 پسندیده

ولی خیلی با مزست :grin: قبلاً موتور گرافیکی دیده بودم ولی چون نمی‌تونستم سینتکس رو متوجه بشم همیشه جلو چشم یه چیز خیلی بزرگ میومد ولی کلا فریم ورک های پایتونی مزیت که داره واقعا برای انسان هم قابل درک و خواندن هست

1 پسندیده