Panda3D 鼠标控制相机程序

from panda3d.core import WindowProperties
from direct.showbase.ShowBase import ShowBase

class MyApp(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

        # 隐藏鼠标光标
        props = WindowProperties()
        props.setCursorHidden(True)
        self.win.requestProperties(props)

        # 设置鼠标控制
        self.accept('mouse1', self.toggleMouseControl)

        self.mouseControlEnabled = False

    def toggleMouseControl(self):
        self.mouseControlEnabled = not self.mouseControlEnabled
        props = WindowProperties()
        props.setPointerHidden(self.mouseControlEnabled)
        self.win.requestProperties(props)

    def update(self):
        if self.mouseControlEnabled:
            # 获取鼠标移动的相对位置
            md = self.win.getPointer(0)
            x = md.getX()
            y = md.getY()

            # 计算相机的旋转角度
            self.camera.setH(self.camera.getH() - x * 0.2)
            self.camera.setP(self.camera.getP() - y * 0.2)

        # 继续更新场景
        return task.cont

app = MyApp()
app.run()

该程序使用 Panda3D 库实现了一个简单的鼠标控制相机功能。程序首先隐藏了鼠标光标,然后通过 accept 函数绑定了鼠标左键点击事件,当用户点击鼠标左键时会触发 toggleMouseControl 函数,该函数会切换鼠标控制状态,并根据状态设置鼠标指针是否可见。

在 update 函数中,程序会根据鼠标控制状态判断是否需要更新相机旋转角度。如果鼠标控制已启用,程序会获取鼠标移动的相对位置,并根据该位置计算相机的水平和垂直旋转角度。

该程序可以作为学习 Panda3D 和鼠标控制相机功能的简单示例。用户可以根据自己的需求修改该程序,例如添加其他鼠标控制功能,或者将其整合到自己的游戏项目中。

Panda3D 鼠标控制相机程序

原文地址: https://www.cveoy.top/t/topic/pgVT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录