Понимание классов в Python Arcade - PullRequest
0 голосов
/ 22 октября 2018

Я новичок в программировании и был бы признателен за руководство / обратную связь.

Ниже приведен полный рабочий сценарий:

Мне удалось настроить спрайт плеера для управления WASD,астероидный спрайт также теперь отображается на экране, с некоторой физикой, чтобы перемещать его.Это должно отскочить от стен тоже, но не делает.Но по какой-то причине функция обновления не правильно вызывает класс Asteroid, я полагаю, если только с ним что-то не так.

Огромная благодарность за любую помощь, так что будьте внимательны и будущие рекомендации!

1 Ответ

0 голосов
/ 22 октября 2018

Не могли бы вы рассказать нам точную проблему (исключение: спрайты не перемещаются, как ожидалось, ...) Однако предоставленный вами код дал мне следующие идеи:

  • вызовконструктор унаследованного класса

    class Asteroid(arcade.Sprite):
        def __init__(self):
            super(Asteroid, self).__init__()
            # or
            arcade.Sprite.__init__(self)
    

    подробнее здесь (странно, но я ничего не нашел о вызове базового конструктора в разделе classes-наследование в официальномдокументы, может быть, кто-то может предоставить что-то

  • , используя переменные, которые не существуют или создаются ниже

    self.center_x += self.change_x * delta_time
    self.center_y += self.change_y * delta_time
    

    self.change_x создан ниже (так что это не таксуществует в то время) и delta_time больше нигде (может быть, это просто неполный фрагмент?)

  • Вы действительно хотите создать экземпляр Sprite после создания собственного дочернего классаof Sprite (Asteroid)

    self.asteroid_sprite = Asteroid("asteroid.gif", SPRITE_SCALING_ASTEROID)
    

    вместо

    self.asteroid_sprite = arcade.Sprite("asteroid.gif", SPRITE_SCALING_ASTEROID)
    

EDIT: попробуйте сделать это до назначения переменных в астероидеконструктор:

def __init__(self, *args, **kwargs):
    super(Asteroid, self).__init__(*args, **kwargs)

args иkwargs являются заполнителями для вещей, которые вы передаете ниже, например, путь к изображению

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...