使用 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()

功能说明:

  • 隐藏鼠标光标:通过 WindowProperties 设置 setCursorHidden 为 True 来隐藏鼠标光标。
  • 设置鼠标控制:使用 accept 方法监听鼠标左键点击事件,并在点击时调用 toggleMouseControl 方法切换鼠标控制状态。
  • 鼠标控制相机旋转:当鼠标控制开启时,获取鼠标移动的相对位置,并根据位置计算相机的旋转角度。

代码解释:

  • WindowProperties 类用于设置窗口属性,包括隐藏鼠标光标等。
  • ShowBase 类是 Panda3D 的基础类,提供了基本的功能,例如创建窗口、加载模型、渲染场景等。
  • accept 方法用于监听事件,例如键盘按键、鼠标点击等。
  • getPointer 方法用于获取鼠标的位置。
  • setH 和 setP 方法用于设置相机的水平和垂直旋转角度。

运行程序:

将代码保存为 main.py 文件,并使用 Python 运行该文件。

注意:

  • 需要安装 Panda3D 库。
  • 鼠标控制只在鼠标控制开启时生效。
  • 可以根据需要调整旋转速度等参数。
Panda3D 隐藏鼠标光标并实现鼠标控制相机旋转

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

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