def run_game(): pygame.init() ai_settings=Settings() screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") play_button=Button(ai_settings,screen,"Play") ship=Ship(ai_settings,screen) bullets=Group() aliens=Group() gf.create_fleet(ai_settings,screen,ship,aliens) stats=GameStats(ai_settings) sb=Scoreboard(ai_settings,screen,stats) bg_fill=(230,230,230) Gameexit=True alient=Alien(ai_settings,screen) while Gameexit: gf.check_events(ai_settings,screen,ship,bullets,stats,play_button,aliens,sb) if stats.game_active: ship.update() gf.update_bullets(ai_settings,screen,ship,bullets,aliens,sb,stats) gf.update_aliens(ai_settings,stats,screen,aliens,ship,bullets,sb) gf.update_screen(ai_settings,screen,ship,aliens,bullets,play_button,stats,sb)
def create_alien(ai_settings, screen, aliens, alien_number, row_number): """Create an alien and place it in the row""" alien = Alien.Alien(ai_settings, screen) alien_width = alien.rect.width alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number aliens.add(alien)
def create_fleet(ai_settings, screen, ship, aliens): """Create full fleet of aliens""" alien = Alien.Alien(ai_settings, screen) number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width) number_rows = get_number_rows(ai_settings, ship.rect.height, alien.rect.height) # Create the fleet of aliens for row_number in range(number_rows): for alien_number in range(number_aliens_x): create_alien(ai_settings, screen, aliens, alien_number, row_number)
def fillWave(self): directory = "images\enemys\enemy1" for x in range(self.num_cols()): for y in range(self.num_rows()): if y == 0: directory = "images\enemys\enemy1" directory2 = "images\explosionpurple.png" elif y == 1 or y == 2: directory = "images\enemys\enemy2" directory2 = "images\explosionblue.png" elif y == 3 or y == 4: directory = "images\enemys\enemy3" directory2 = "images\explosiongreen.png" self.set((x,y),Alien(directory,directory2))
def create_fleet(settings, screen, aliens, reverse=False): """创建外星飞船队伍""" alien = Alien(screen=screen, settings=settings, image=settings.alien_image_4) alien_width = alien.rect.width space_x = settings.screenWidth - alien_width alien_space = 2 * alien_width number_aliens_x = int(space_x / alien_space) for alien_number in range(number_aliens_x): if reverse: alien = Alien(screen=screen, settings=settings, image=settings.alien_image_3) alien.x = settings.screenWidth + alien_space * alien_number settings.is_forward = False else: alien = Alien(screen=screen, settings=settings, image=settings.alien_image_4) alien.x = -alien_width - alien_space * alien_number settings.is_forward = True alien.rect.x = alien.x aliens.append(alien)
def reset(): global score global spaceship global bullets global aliens global GameOver global leftKeyPressed global rightKeyPressed global bulletKey GameOver = False leftKeyPressed = False rightKeyPressed = False bulletKey = False if score: score = 0 bullets = [] aliens = [] for n in xrange(10): aliens.append(Alien())
def spawnALiens(): row = [] for x in range(0, 5): a = Alien(x * 250, 50) row.append(a) alien_rows.append(row)
def spawnAliens(self): # Spawns 3x6 aliens print("LEVEL: " + str(self.level)) if self.level % 6 == 0: #Spawns a boss at every sixth level self.boss = Alien('green', model=self.firstGreen.clone(), hp=self.power * 6) self.boss.setPosition(0, 0, 1, scale=.0025 * 3) self.speed = 1 / (self.power / 2) viz.playSound('bossSpawn.wav') elif not self.pause: x = -.6 #Spawns a 3x6 wave of aliens, each alien spawn is random for i in range(0, 6): num = random.randint(0, 3) if num == 0: self.aliens[i] = Alien('blue', model=self.firstBlue.clone(), hp=3) elif num == 1: self.aliens[i] = Alien('red', model=self.firstRed.clone()) elif num == 2: self.aliens[i] = Alien('purple', model=self.firstPurple.clone(), hp=3) elif num == 3: self.aliens[i] = Alien('orange', model=self.firstOrange.clone(), hp=2) self.aliens[i].setPosition(x, 0, 1) x += .25 x = -.6 for i in range(6, 12): num = random.randint(0, 3) if num == 0: self.aliens[i] = Alien('blue', model=self.firstBlue.clone(), hp=3) elif num == 1: self.aliens[i] = Alien('red', model=self.firstRed.clone()) elif num == 2: self.aliens[i] = Alien('purple', model=self.firstPurple.clone(), hp=3) elif num == 3: self.aliens[i] = Alien('orange', model=self.firstOrange.clone(), hp=2) self.aliens[i].setPosition(x, 0, .75) x += .25 x = -.6 for i in range(12, 18): num = random.randint(0, 3) if num == 0: self.aliens[i] = Alien('blue', model=self.firstBlue.clone(), hp=3) elif num == 1: self.aliens[i] = Alien('red', model=self.firstRed.clone()) elif num == 2: self.aliens[i] = Alien('purple', model=self.firstPurple.clone(), hp=3) elif num == 3: self.aliens[i] = Alien('orange', model=self.firstOrange.clone(), hp=2) self.aliens[i].setPosition(x, 0, .5) x += .25 viz.playSound('newWave.wav')
def __init__(self): # base class constructor viz.EventClass.__init__(self) self.callback(viz.KEYDOWN_EVENT, self.onKeyDown) # Callback for key press self.callback(viz.TIMER_EVENT, self.onTimer) # Callback for timers self.callback(viz.KEYUP_EVENT, self.onKeyUp) #Creates memory for bullets and alien spawns self.bulletlist = [] self.aliens = [None for x in range(0, 18)] self.alienbullets = list() # Default rotation for camera self.theta = 50 #Booleans for keys pressed self.leftUp = True self.rightUp = True self.Fire = False self.start = False self.pause = False self.start = False #Checks whether the game has started self.gameover = False self.title = True self.playerSpeed = .05 #Setup default camera view self.view = viz.MainView mat = viz.Matrix() mat.postAxisAngle(1, 0, 0, self.theta) mat.postTrans(0, 0, 0) self.view.setMatrix(mat) #Spawn the player self.playerShip = Player() self.playerShip.setPosition(0, 0, -.6) self.power = 3 self.level = 1 self.speed = 1 / self.power # Start timers self.starttimer(1, .05, viz.FOREVER) self.starttimer(2, .05, viz.FOREVER) self.starttimer(3, .001, viz.FOREVER) self.starttimer(4, self.speed, viz.FOREVER) self.starttimer(5, .5, viz.FOREVER) self.starttimer(6, .3, viz.FOREVER) #Initialize these models far off screen so they can be copied, thus these models only load once self.firstRed = Alien('red', modelLabel='redAlien.dae') self.firstRed.setPosition(0, 2000, 0) self.firstBlue = Alien('blue', modelLabel='blueAlien.dae') self.firstBlue.setPosition(0, 2000, 0) self.firstPurple = Alien('purple', modelLabel='tankAlien.dae') self.firstPurple.setPosition(0, 2000, 0) self.redbullet = Bullet(modelLabel='redBullet.dae') self.redbullet.setPosition(0, 2000, 0) self.greenbullet = Bullet(modelLabel='greenBullet.dae') self.greenbullet.setPosition(0, 2000, 0) self.firstOrange = Alien('orange', modelLabel='powerupAlien.dae') self.firstOrange.setPosition(0, 2000, 0) self.firstGreen = Alien('green', modelLabel='greenAlien.dae') self.firstGreen.setPosition(0, 2000, 0) #Boss object and where the boss can move self.boss = None self.bossRight = False self.bossLeft = True #Initial dynamic text strings self.levelText = None self.levelMsg = "Level: 1" self.hpText = None self.hpMsg = "HP: 1" self.scoreText = None self.scoreMsg = "Score: 0" self.score = 0 #Spawn the title screen self.titleScreen()
displayHeight = 900 speed = 250 UP = 'up' DOWN = 'down' RIGHT = 'right' LEFT = 'left' LEVEL = 1 missleMap = [] enemyMap = [] tracker = 0 rocket = Rocket.Rocket() #test Alien alien = Alien.Alien(250, 30, 0) def runGame(): global missleMap speedUp = False movX, movY = 0, 0 s = "Score " + str(score) while True: playSound("Idle.wav") key = pygame.key.get_pressed() for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() elif event.type == KEYDOWN:
def spawn_aliens(): for x in range(0, 5): aliens.append(Alien(x * 100, 100))
from star import * from Boss import * from Highscore import * ##largestNumber = 0 ##file = open('test.txt', 'r') ## ##for line in file: ## if line > largestNumber: ## largestNumber = line #print largestNumber boss_spawner = 0 pygame.init() screen = pygame.display.set_mode( [constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT]) ss = Spaceship() a = Alien(800, 100) direction_counter = 50 bullet_counter = 0 bullets = [] aliens = [a] stars = [] bosses = [] mode = "playing" lose = pygame.image.load('you-lose-i-win.jpg') lose = pygame.transform.scale( lose, (constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT)) score = 0 score_font = pygame.font.SysFont("Times New Roman", 100) alien_spawner = 0
def spawnAlien(self): alien = Alien(self.screen, self, random.randint(10, 480), 0) self.aliens.append(alien) print("Un alien spawned")
from Spaceship import * from Globals import * from Bullet import * from Alien import * pygame.init() #score = 0 spaceship = Spaceship() bullets = [] aliens = [] for n in xrange(5): aliens.append(Alien()) def reset(): global score global spaceship global bullets global aliens global GameOver global leftKeyPressed global rightKeyPressed global bulletKey GameOver = False leftKeyPressed = False rightKeyPressed = False bulletKey = False if score:
food_storage = pygame.sprite.Group() #holds food sprites fishies = pygame.sprite.Group() #holds fish sprites moneies = pygame.sprite.Group() #holds money sprites aliens = pygame.sprite.Group() #create objects player = Owner([kfc, pizza, icecream]) #allows user interaction introText = mpFont.render(''' HANI ICS3U P. Cugliari ''', 1, (0, 0, 0), (255, 255, 255)) #text at bottom of first screen #variables ct_speed = 30 #maximum frames per second '''The entire game is held in a while True loop so that players can play again.''' while True: aliens.add(Alien([alien1, alien2], 400, 200)) #creates an alien and adds to container fishies.add(Fish([guppy1, guppy2], 200, 200)) #creates a fish and adds to container '''These bools are used for breaking loops.''' alarm_s = True warning_s = True interval_s = False battle_coming = False a_w_interval = 0 shot = False time_paused = 0 clicked0 = False win = False '''First part - Introscreen ''' while True: for event in pygame.event.get():