У меня проблема с моей копией Minecraft на python

#python #user-interface #ursina

Вопрос:

Я работал с «Движком Урсины», Мой проект состоит в том, чтобы сделать копию 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()
 

Конец.

Комментарии:

1. вы запускали код в консоли/терминале для se, если вы получаете сообщение об ошибке?

Ответ №1:

Имя функции ввода неверно. Input должно быть input

Ответ №2:

Функция ввода должна быть 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()
 

Этот код работает, вы можете разместить блок щелчком левой кнопки мыши и удалить блок щелчком правой кнопки мыши!

Ответ №3:

Ну, у вас есть две проблемы, одна из которых заключается в том, что строка: ваш код

Дело в том, что это должен быть Воксел, а не Вовель

И вторая проблема в том, что вы перепутали «правую мышь вниз» и «левую мышь вниз».

В этом, очевидно, и заключается проблема.