Ejemplo n.º 1
0
 def shoot(self, direction):
     bulletX = (2 * self.x + self.width) / 2 - 1
     return Bullet(bulletX, self.y, self.screen, self.color, direction, 5)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
def fire_bullet(setting, screen, ship, bullets):
    if len(bullets) < setting.bullets_allowed:
        new_bullet = Bullet(setting, screen, ship)
        bullets.add(new_bullet)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
        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'):
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
0
 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)
Ejemplo n.º 14
0
 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)
Ejemplo n.º 16
0
 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)
Ejemplo n.º 17
0
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()
Ejemplo n.º 18
0
 def _fire_bullet(self):
     """新しい弾を生成し bullets グループに追加する"""
     if len(self.bullets) < self.settings.bullets_allowed:
         new_bullet = Bullet(self)
         self.bullets.add(new_bullet)
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
def fire_bullet(ai_settings, screen, ship, bullets):
    if len(bullets) < 3:
        new_bullet = Bullet(ai_settings, screen, ship)
        bullets.add(new_bullet)
Ejemplo n.º 21
0
def fire_bullet(ai_settings, screen, ship, bullets):
    #创建新子弹,并将其加入到编组bullets中
    new_bullet = Bullet(ai_settings, screen, ship)
    bullets.add(new_bullet)
Ejemplo n.º 22
0
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
Ejemplo n.º 23
0
 def _fire_bullet(self):
     if len(self.bullets) < self.setting.bullets_allowed:
         new_bullet = Bullet(self)
         self.bullets.add(new_bullet)
Ejemplo n.º 24
0
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)
Ejemplo n.º 25
0
 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)
Ejemplo n.º 26
0
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 = [
Ejemplo n.º 27
0
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)
Ejemplo n.º 28
0
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)
Ejemplo n.º 29
0
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)