Python魂斗罗小游戏源代码源程序,主程序Contra.py,游戏简易使用说明:A:向左,D:向右,W:跳起,S:趴下,J:射击,P:退出程序。
程序运行截图:
Contra.py
'''公众号:Python代码大全'''import pygameimport sysfrom pygame.locals import *from settings import Settingsfrom game_player import Game_Playerimport game_functions as gffrom pygame.sprite import Groupfrom game_stats import GameStatsfrom game_boss import Game_Bossfrom button import Buttondef run_game():bg = pygame.image.load("图片/map01.jpeg")game_settings = Settings()pos_x = 0#地图移动pygame.init()screen = pygame.display.set_mode((game_settings.screen_width,game_settings.screen_height))pygame.display.set_caption("魂斗罗BY Python代码大全")stats = GameStats(game_settings)player = Game_Player(game_settings,screen)bullets = Group()boss = Group()enemys = Group()win_button = Button(game_settings,screen,"YOU WIN")gf.create_legion(game_settings,screen,enemys)gf.create_boss(game_settings,screen,player,boss)while True:pygame.mouse.set_visible(False)gf.check_events(game_settings,screen,player,bullets)gf.update_player(game_settings,stats,player,enemys)gf.update_bullet(game_settings,bullets,screen,enemys,boss)gf.update_enemys(game_settings,enemys)gf.update_boss(game_settings,boss)gf.update_screen(game_settings,bg,pos_x,screen,player,bullets,enemys,boss,win_button)if player.moving_right and player.center > player.screen_rect.centerx and game_settings.boss_appear == False:game_settings.screen_rolling = Truepos_x -= 5#屏幕滚动速度else:game_settings.screen_rolling = Falserun_game()
game_funtcions.py
import sysimport pygamefrom bullet import Bulletfrom enemy import Enemyfrom game_boss import Game_Bossdef check_keydown_events(event,game_settings,screen,player,bullets):if event.key == pygame.K_k:#跳跃player.player_jump = Trueif event.key == pygame.K_d:#向右game_settings.bullet_direction = 'right'if player.player_down or player.player_up:player.moving_right = Falseelse:player.moving_right = Trueplayer.player_direction = 1if event.key == pygame.K_a:#向左game_settings.bullet_direction = 'left'if player.player_down or player.player_up:player.moving_left = Falseelse:player.moving_left = Trueplayer.player_direction = -1elif event.key == pygame.K_s:#向下player.player_down = Trueplayer.player_moving = Falseplayer.moving_left = Falseplayer.moving_right = Falseelif event.key == pygame.K_w:#向上player.player_up = Trueplayer.player_moving = Falseplayer.moving_left = Falseplayer.moving_right = Falseelif event.key == pygame.K_j:#射击new_bullet = Bullet(game_settings,screen,player)bullets.add(new_bullet)player.player_shooting = Trueelif event.key == pygame.K_p:sys.exit()def check_keyup_events(event,player):if event.key == pygame.K_d:#右player.image = pygame.image.load('图片/PR/player.png')player.moving_right = Falseplayer.player_moving = Falseelif event.key == pygame.K_a:#左player.image = pygame.image.load('图片/PL/player.png')player.player_moving = Falseplayer.moving_left = Falseelif event.key == pygame.K_s:#下player.player_down = Falseif player.player_direction == 1:player.image = pygame.image.load('图片/PR/player.png')if player.player_direction == -1:player.image = pygame.image.load('图片/PL/player.png')elif event.key == pygame.K_w:#上player.player_up = Falseif player.player_direction == 1:player.image = pygame.image.load('图片/PR/player.png')if player.player_direction == -1:player.image = pygame.image.load('图片/PL/player.png')def check_events(game_settings,screen,player,bullets):for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type == pygame.KEYDOWN:player.player_moving = Truecheck_keydown_events(event,game_settings,screen,player,bullets)elif event.type == pygame.KEYUP:check_keyup_events(event,player)def update_screen(game_settings,bg,pos_x,screen,player,bullets,enemys,boss,win_button):screen.blit(bg,(pos_x,0))for bullet in bullets.sprites():bullet.blit_bullet()"""if game_settings.boom_end:#击中敌人爆炸enemys.empty()game_settings.boom_end = False"""player.blitme()if game_settings.boss_appear:boss.draw(screen)enemys.draw(screen)if game_settings.game_win:win_button.draw_button()pygame.display.flip()def update_bullet(game_settings,bullets,screen,enemys,boss):bullets.update()for bullet in bullets.copy():if bullet.rect.centerx关注打赏
