1

我正在使用“Ursina Engine” 我的项目是制作Minecraft的副本,然后我发现了一个问题,每次我运行程序并且当我想右键单击放置一个块时,什么都没有发生。

感谢可以帮助我找到问题并告诉我如何解决它的人 *这是我的代码:*

    from ursina import *
    from ursina.prefabs.first_person_controller import FirstPersonController
    class Vovel(Button):
        def __init__(self, position = (0,0,0)):
            super().__init__(
                parent=scene,
                position=position,
                model='cube',
                origin_y = 0.5,
                texture= 'white_cube',
                color= color.white,
                highlight_color = color.lime,
            )
        def Input(self, key):
            if self.hovered:
                if key == 'left mouse down':
                    vovel = Vovel(position= self.position + mouse.normal)
                if key == 'right mouse down':
                    destroy(self)
    app = Ursina()
    for z in range(8):
        for x in range(8):
            vovel = Vovel(position=  (x,0,z))
    player = FirstPersonController()
    app.run()

结尾。

4

3 回答 3

4

输入函数的名称错误。Input应该input

于 2021-10-05T14:58:29.617 回答
3

输入函数应该是input而不是Input,其余代码是绝对正确的。所以,你的代码应该是:

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


class Vovel(Button):
def __init__(self, position=(0, 0, 0)):
    super().__init__(
        parent=scene,
        position=position,
        model='cube',
        origin_y=0.5,
        texture='white_cube',
        color=color.white,
        highlight_color=color.lime,
    )

def input(self, key):
    if self.hovered:
        if key == 'left mouse down':
            vovel = Vovel(position=self.position + mouse.normal)
        if key == 'right mouse down':
            destroy(self)


app = Ursina()
for z in range(8):
for x in range(8):
    vovel = Vovel(position=(x, 0, z))
player = FirstPersonController()
app.run()

此代码有效,您可以用左键放置一个块并用右键单击删除一个块!

于 2021-11-27T13:32:55.680 回答
-2

那么你有两个问题,一个是那行:你的代码

问题是它应该是体素而不是元音

第二个问题是你搞砸了“鼠标右键”和“鼠标左键”

这显然是问题所在。

于 2022-01-08T12:30:57.323 回答