0

わかりましたので、一晩中私と他の 5 人が私たちの pygame モジュールのプロジェクトに取り組んでいました.私たちの講師は参照するプログラムを私たちに与えていません. 9月の初めからPythonを始めたばかりです。本当に助けが必要です。

したがって、WAS と D によって制御される 1 人の人間のプレイヤーと、画面上を移動する 15 個のランダムなドットがあります。ランダムなドットを撃つには、ベクトル (これまで使用したことがありません) を使用する必要があります。

誰か助けてください。

エディットコード追加〜

import pygame class Terminator(pygame.sprite.Sprite): def __init__(self, screen): pygame.sprite.Sprite.__init__(self) self.image = pygame.Surface((20, 20)) self.image.fill((0, 0, 0)) pygame.draw.circle(self.image, (255, 0, 0), (10, 10), 10, 0) self.rect = self.image.get_rect() self.dx = screen.get_width()/2 self.dy = screen.get_height()/2 self.rect.center = (self.dx, self.dy) self.speed = 5 self.screen = screen def update(self): self.rect.center = (self.dx, self.dy) def MoveLeft(self): if self.rect.left < 0: self.dx += 0 else: self.dx -= self.speed def MoveRight(self): if self.rect.right > self.screen.get_width(): self.dx += 0 else: self.dx += self.speed def MoveUp(self): if self.rect.top <0: self.dy += 0 else: self.dy -= self.speed def MoveDown(self): if self.rect.bottom > self.screen.get_height(): self.dy += 0 else: self.dy += self.speed <code> humansprite.py <pre> import pygame import random import math class Humans(pygame.sprite.Sprite): def __init__(self, screen): pygame.sprite.Sprite.__init__(self) self.image = pygame.Surface((16, 16)) self.image.fill((0, 0, 0)) pygame.draw.circle(self.image, (0, 0, 255), (8, 8), 8, 0) self.rect = self.image.get_rect() self.dx = random.randrange(0, screen.get_height()) self.dy = random.randrange(0, screen.get_width()) self.screen = screen self.speed = 1 self.alive = True def update(self): self.rect.centerx -= self.dx self.rect.centery -= self.dy if self.rect.right < 0: self.reset() def reset(self): self.rect.left = self.screen.get_width() self.rect.centery = random.randrange(0, self.screen.get_height()) self.dy = random.randrange(-2, 2) self.dx = random.randrange(1, 4) <code> seekandDestory.py <pre> import pygame from TerminatorSprite import Terminator from humansSprite import Humans pygame.init() def checkKeys(myData): (event, ship) = myData if event.key == pygame.K_LEFT: print 'LEFT' ship.MoveLeft() if event.key == pygame.K_RIGHT: print 'RIGHT' ship.MoveRight() if event.key == pygame.K_UP: print 'UP' ship.MoveUp() if event.key == pygame.K_DOWN: print 'DOWN' ship.MoveDown() def main(): screen = pygame.display.set_mode((640, 480)) pygame.display.set_caption("Seek and Destroy") background = pygame.Surface(screen.get_size()) clock = pygame.time.Clock() screen.blit(background, (0, 0)) terminator = Terminator(screen) humans = [] for people in range(15): people = Humans(screen) humans.append(people) terminatorGroup = pygame.sprite.Group(terminator) humanGroup = pygame.sprite.Group(humans) clock = pygame.time.Clock() keepGoing = True pygame.key.set_repeat(10, 10) while keepGoing: clock.tick(60) pygame.mouse.set_visible(False) for event in pygame.event.get(): if event.type == pygame.QUIT: keepGoing = False if event.type == pygame.KEYDOWN: myData = (event, terminator) checkKeys(myData) #if pygame.sprite.spritecollide(terminator, humanGroup, False): terminatorGroup.clear(screen, background) terminatorGroup.update() terminatorGroup.draw(screen) humanGroup.clear(screen, background) humanGroup.update() humanGroup.draw(screen) pygame.display.flip() pygame.mouse.set_visible(True) if __name__ == "__main__": main() <code>
4

1 に答える 1