在Ursina中使用鼠标正确关闭窗口

问题描述 投票:0回答:5

在过去的几天里,我一直在使用 Ursina Engine in Python,用于创建 3D 和 2D 游戏。但我在制作 3D 游戏时使用该引擎经常遇到的问题是无法正确关闭窗口。发生这种情况是因为在游戏内部使用鼠标来控制玩家,所以如果我尝试转到关闭按钮,鼠标将始终留在游戏中。解决方法是移动到另一个窗口,将鼠标定位在窗口之外,然后最后单击关闭按钮。但这对于用户来说需要做很多工作,只需关闭窗口即可。

这里有一些简单的代码来演示:

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController
import random

game = Ursina()

class Block(Button):
    def __init__(self, position = (0,0,0)):
        super().__init__(parent = scene, position = position, model = 'cube', color = color.white)

for z in range(20):
    for x in range(20):
        block = Block(position = (x, 0, z))

player = FirstPersonController()
game.run()

我相信这个 import 语句导致了这个:

from ursina.prefabs.first_person_controller import FirstPersonController

如何在Ursina中正确关闭窗口?

python window mouse ursina
5个回答
6
投票

此问题的一个解决方案是创建一种通过按键退出游戏的方法。

def input(key):
    if key == 'escape':
        quit()

使用此代码,您可以通过按“退出”来关闭游戏。


4
投票

快速解决方案,Shift+Q(如果启用了 exit_button)。

通常在第一人称射击游戏中,您会创建一个暂停菜单并在其中放置一个退出按钮。 FirstPersonController 隐藏鼠标光标并将位置锁定在屏幕中心。要扭转这种情况,请执行以下操作:

mouse.locked = False
mouse.visible = True

2
投票

我通常按“Windows”键。按下此按钮将打开窗口菜单,但它也会使鼠标可见。

另一个提示,你可以放:

window.exit_button.visible = False

在您的代码中,以便更轻松地关闭窗口。


0
投票

从ursina导入*

应用程序 = 乌尔西娜()

窗口.exit_button.x = -10000

退出=按钮(文本=“X”,比例=0.05,模型=“立方体”,颜色= 颜色.红色) 退出.y = 0.45 退出.x = 0.8

定义输入(键): 如果 key == “鼠标左键按下”并且 mouse.hovered_entity == 退出: 退出()

app.run()


-1
投票

只需禁用 FPC(第一人称控制器)

player.disable()

或者只是

使鼠标解锁

mouse.locked = False
,这样它就可以移动了

© www.soinside.com 2019 - 2024. All rights reserved.