В настоящее время я работаю над игрой космических злоумышленников в Киви. У меня есть космический корабль, и он стреляет пулями во врагов. Враги движутся вправо, и когда они достигают границы, они поворачивают налево, и это происходит снова и снова. Все работает отлично. Я могу стрелять и враг движется. Но проблема в том, что я не могу создать несколько врагов. Я должен поставить собственный класс для каждого врага и писать один и тот же код снова и снова. Моя идея состояла в том, что я создам список врагов, а затем выведу их из списка. Так что похоже, что есть несколько врагов. Но у меня нет идей, как я могу это сделать, и я не могу сделать это с одного дня. Также, когда у вас есть другие идеи, было бы здорово, если бы вы их предложили. Вот мой код.
Класс врага:
class Enemy(Widget):
def collision(self,ball,enemy,enemy1):
if self.collide_widget(ball):
enemy.y = randint(300,500)
enemy1.y = randint(300,500)
ball.x = -1000
ball.y = self.height / self.width
Мой основной класс игры:
class SapceGame(Widget):
enemy = ObjectProperty(None)
enemy = ObjectProperty(None)
x_change = NumericProperty(3)
y_change = NumericProperty(-50)
def enemy_movement(self, *args):
self.enemy.x -= self.x_change
if self.enemy.x >= self.width -64:
self.x_change = 3
self.enemy.y += self.y_change
elif self.enemy.x <=0:
self.x_change = -3
self.enemy.y += self.y_change
elif self.enemy.y < 0:
print('Game Over')
def update(self,dt):
self.enemy_movement()
Мой файл кв:
<Enemy>:
size: 64,64
canvas:
Rectangle:
pos:self.pos
size: self.size
source:'alien.png'
<SpaceGame>:
ball: pong_ball
ship: space_ship
enemy: enemy_ship
Enemy:
id:enemy_ship
x:root.random_generator(2,root.width-64)
y:root.random_generator(300,550)
Класс приложения
class SpaceApp(App):
def build(self):
game = PongGame()
# pro second 60 frames are shown
Clock.schedule_interval(game.update, 1.0/60.0)
return game
SpaceApp().run()
Now when I want to create more enemies I have to write the same code again and again.