def shoot(self, direction): bulletX = (2 * self.x + self.width) / 2 - 1 return Bullet(bulletX, self.y, self.screen, self.color, direction, 5)
def fire_bullet(ai_settings, screen, ship, bullets): """如果还没有到达限制,就发射一颗子弹""" # 创建新子弹,并将其加入到编组bullets中 if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullet): # Make a new bullet and add it to the bullets group. if len(bullet) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullet.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullets): if len(bullets) <= ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def _fire_bullet(self): """Create a new bullet and add it to the bullets group.""" if len(self.bullets) < self.settings.bullets_allowed: new_bullet = Bullet(self) self.bullets.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullets): """Fire a bullet if limit not reached yet.""" #Create a new bullet and add it to the bullets group. if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def fire_bullet(link_settings, screen, char, bullet): # Make a new bullet and add it to the bullets group. #if len(bullet) < link_settings.bullets_allowed: new_bullet = Bullet(link_settings, screen, char) bullet.add(new_bullet)
def fire_bullet(setting, screen, ship, bullets): if len(bullets) < setting.bullets_allowed: new_bullet = Bullet(setting, screen, ship) bullets.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullets): #Fire a bullet if limit not reached yet. if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
q_dot2 = (p + dt * p_dot1) / b p_dot2 = a * sin(q + dt * q_dot1) q += dt / 2.0 * (q_dot1 + q_dot2) p += dt / 2.0 * (p_dot1 + p_dot2) yield q COLOR = { 'black': (0, 0, 0), 'red': (255, 0, 0), 'green': (0, 255, 0), 'blue': (0, 0, 255) } # initialize bullet class bullet = Bullet(screen=(800, 800)) # make the speed_factor from bullet class into variable speed = bullet.speed_factor PHYSICS_GENERATORS = {'Heun': gen_pendulum_physics_Heun} class Pendulum(pygame.sprite.Sprite): """renders a fixed pivot pendulum and updates motion according to differential equation""" def __init__(self, pivot_vect, length, bob_radius, bob_mass, init_angle, integration_method='Heun'):
def fire_bullet(ai_settings, screen, ship, bullets): """如果还没有达到限制就发射一个子弹""" #创建薪资单,并将其加入到编组bullets中 if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def _fire_bullet(self): ## Create a new bullet and add it to the bullets group ## # limits bullets shot to 3 if len(self.bullets) < self.settings.bullets_allowed: new_bullet = Bullet(self) self.bullets.add(new_bullet)
def _fire_bullet(self): """Create a new bullet and add it to the bullets group""" if len(self.bullets) < 1: self.settings.number_of_bullets -= 1 new_bullet = Bullet(self) self.bullets.add(new_bullet)
def _fire_bullet(self): """Create a new bullet and add it to the bullets group""" new_bullet = Bullet(self) self.bullets.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullets): '''限制出现在屏幕范围内的子弹数量,如果还没有达到限制,就可以再发射子弹''' if len(bullets) < ai_settings.bullets_allowed: #创建一颗子弹,并使其加入到编组bullets中 new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def _fire_bullet(self): #Creates a new bullet to the bullet group if len(self.bullets) < self.settings.bullets_allowed: new_bullet = Bullet(self) self.bullets.add(new_bullet)
def shoot_bullet(settings, screen, ship, bullets): """Shoots a bullet if the limit is not reached""" if len(bullets) < settings.bullet_limit: bullet = Bullet(settings,screen,ship) bullets.add(bullet) s.play_shoot()
def _fire_bullet(self): """新しい弾を生成し bullets グループに追加する""" if len(self.bullets) < self.settings.bullets_allowed: new_bullet = Bullet(self) self.bullets.add(new_bullet)
def _fire_bullet(self): '''Stworzenie pocisku i dodanie go do grupe pocisków''' if len(self.bullets) < self.settings.bullets_allowed: new_bullet = Bullet(self) self.bullets.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullets): if len(bullets) < 3: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullets): #创建新子弹,并将其加入到编组bullets中 new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def game(screen, room, level, lvl): pygame.display.set_caption('Maze Runner') font = pygame.font.Font('./data/fonts/freesansbold.ttf', 20) gameoverfont = winfont = pygame.font.Font('./data/fonts/freesansbold.ttf', 72) gameovertext = gameoverfont.render('Game Over', 1, RED) gameoverrect = gameovertext.get_rect() gameoverrect.centerx = 320 gameoverrect.centery = 240 wintext = winfont.render('Level Completed', 1, RED) winrect = wintext.get_rect() winrect.centerx = 320 winrect.centery = 240 startime = font.render('Time: 0', 1, WHITE) startrect = startime.get_rect() startrect.x = 0 startrect.y = 0 gameovercount = 0 gameoverdelay = 90 wincount = 0 windelay = 90 invinciblecount = 0 invincibledelay = 20 invincibleon = False clock = pygame.time.Clock() gamePause = False #player=None walls = [] enemys = [] treasures = [] starttime = time.time() for x in range(len(level)): for y in range(len(level[x])): char = level[x][y] s_x = 35 + y * 25 s_y = 35 + x * 25 if char == "X": room.wall_list.add(Wall(s_x, s_y)) elif char == "E": room.enemy_sprites.add(Enemy(s_x, s_y)) elif char == "P": player = Player(s_x, s_y) elif char == "T": room.treasure_list.add(Treasure(s_x, s_y)) lives = int(player.lives) livestext = font.render('Lives: %s' % str(player.lives), 1, WHITE, BLACK) #enemy_c = len(room.enemy_sprites); enemy_text = font.render('Enemies: %s' % str(len(room.enemy_sprites)), 1, WHITE, (0,0,0)) livesrect = livestext.get_rect() livesrect.x = screen.get_width() - livesrect.width livesrect.y = 0 level_text = font.render('Level: %s' % str(lvl), 1, WHITE, (0, 0, 0)) levelrect = level_text.get_rect() levelrect.centerx = screen.get_width() / 2 levelrect.y = 0 # Create the player object movingsprites = pygame.sprite.Group() movingsprites.add(player) bullets = pygame.sprite.Group() rooms = [] rooms.append(room) current_room_no = 0 current_room = rooms[current_room_no] done = False pygame.mixer.music.load('./data/background_music.ogg') #pygame.mixer.music.set_volume(0.5) pygame.mixer.music.play(-1, ) screen.blit(startime, startrect) screen.blit(livestext, livesrect) while not done: screen.fill(BLACK) if not gamePause: tTime = int(round(abs(starttime - time.time()))) else: if int(round(abs(starttime - time.time()))) > tTime: starttime += 1 startime = font.render('Time: ' + str(tTime), 1, WHITE, BLACK) #livestext = font.render('Lives: %s' % str(player.lives), 1, (255,255,255), (0,0,0)) if invinciblecount > 0: invinciblecount -= 1 if player.invincible: invincibleon = not invincibleon if invinciblecount == 0: player.invincible = False # --- Event Processing --- for event in pygame.event.get(): if event.type == pygame.QUIT: done = True if event.type == pygame.KEYDOWN and not gamePause: if event.key == pygame.K_LEFT: player.changespeed(-5, 0, "LEFT") if event.key == pygame.K_RIGHT: player.changespeed(5, 0, "RIGHT") if event.key == pygame.K_UP: player.changespeed(0, -5, "UP") if event.key == pygame.K_DOWN: player.changespeed(0, 5, "DOWN") if event.key == pygame.K_SPACE: bullets.add( Bullet(player.rect.x, player.rect.y + 10, player.prev_dir)) if event.type == pygame.KEYUP and not gamePause: if event.key == pygame.K_LEFT: player.changespeed(5, 0, "LEFT") if event.key == pygame.K_RIGHT: player.changespeed(-5, 0, "RIGHT") if event.key == pygame.K_UP: player.changespeed(0, 5, "UP") if event.key == pygame.K_DOWN: player.changespeed(0, -5, "DOWN") # --- Game Logic --- if not gamePause: player.move(current_room.wall_list, current_room.enemy_sprites, current_room.treasure_list) for group in current_room.enemy_sprites: group.changespeed(player) group.move(current_room.wall_list) for treasure in current_room.treasure_list: treasure.animate() for bull in bullets: bull.update(current_room.wall_list, current_room.enemy_sprites) if lives > player.lives and player.lives >= 0: lives = player.lives livestext = font.render('Lives: %s' % str(player.lives), 1, WHITE, BLACK) player.invincible = True invinciblecount = invincibledelay if player.lives == 0 and (not player.dead): gameovercount = gameoverdelay gamePause = True player.dead = True if not current_room.treasure_list and (not player.won): wincount = windelay gamePause = True player.won = True if gameovercount > 0: gameovercount -= 1 if gameovercount == 0 and player.dead: done = True if wincount > 0: wincount -= 1 if wincount == 0 and player.won: pygame.sprite.Group.empty(current_room.wall_list) pygame.sprite.Group.empty(current_room.enemy_sprites) pygame.sprite.Group.empty(current_room.treasure_list) return True # --- Drawing --- if not player.invincible and not player.dead and not player.won: movingsprites.draw(screen) if player.invincible and invincibleon and not player.dead: movingsprites.draw(screen) current_room.wall_list.draw(screen) current_room.enemy_sprites.draw(screen) current_room.treasure_list.draw(screen) bullets.draw(screen) screen.blit(startime, startrect) screen.blit(livestext, livesrect) screen.blit(level_text, levelrect) if player.won: screen.blit(wintext, winrect) if player.dead: screen.blit(gameovertext, gameoverrect) #print(current_room.enemy_sprites) pygame.display.flip() clock.tick(20) return False
def _fire_bullet(self): if len(self.bullets) < self.setting.bullets_allowed: new_bullet = Bullet(self) self.bullets.add(new_bullet)
def fire_bullet(ai_settings, screen, ship, bullets): # Create a new bullet and add them in bullets if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def shoot(self): self.bullet_lines.append([]) ship = self.ships[self.active_ship_id] self.bullet = Bullet(ship.x, ship.y, ship.d, ship.power) self.bullet_time = 0 self.timer.start(TIMER_SPEED)
window = pygame.display.set_mode(SIZE) screen = pygame.Surface((SIZE)) pygame.display.set_caption("TANK WAR") punkts = [(100, 250, u'PRESS SPACE TO START', (26, 219, 30), (219, 65, 26), 0), (260, 310, u'Quit', (26, 219, 30), (219, 65, 26), 1)] gpunkts = [(100, 250, u'GAME OVER, PRESS ESC', (26, 219, 30), (219, 65, 26), 0) ] game_over = Game_over(gpunkts) game = Menu(punkts) game.menu() enemy = Player(281, 80, 1) hero = Player(281, 362, 0) # создаем героя по (x,y) координатам bullet = Bullet(-10, 350) ebullet = Bullet(-20, 350) bullet.push = False ebullet.push = False direction = None direction1 = None left = right = False up = down = False eleft = eright = False eup = edown = False count = 0 count1 = 0 level = [
def fire_bullet(ai_settings, screen, ship, bullets): """如果子弹数量未超阈值,创建子弹""" #创建子弹并加入bullets中 if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def fire_bullet(ai_settings: Settings, screen: Surface, ship: Ship, bullets: Group): if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)
def fire_bullet(bullets, ai_settings, screen, ship, score): if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet) score.prep_bulletss(bullets)
def fire_bullet(ai_settings, screen, ship, bullets): # 创建新子弹并将其加入到编组 bullets 中 if len(bullets) < ai_settings.bullet_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet)