Python魂斗罗小游戏源代码源程序,主程序Contra.py,游戏简易使用说明:A:向左,D:向右,W:跳起,S:趴下,J:射击,P:退出程序。
程序运行截图:
Contra.py
'''
公众号:Python代码大全
'''
import pygame
import sys
from pygame.locals import *
from settings import Settings
from game_player import Game_Player
import game_functions as gf
from pygame.sprite import Group
from game_stats import GameStats
from game_boss import Game_Boss
from button import Button
def 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 = True
pos_x -= 5#屏幕滚动速度
else:
game_settings.screen_rolling = False
run_game()
game_funtcions.py
import sys
import pygame
from bullet import Bullet
from enemy import Enemy
from game_boss import Game_Boss
def check_keydown_events(event,game_settings,screen,player,bullets):
if event.key == pygame.K_k:#跳跃
player.player_jump = True
if event.key == pygame.K_d:#向右
game_settings.bullet_direction = 'right'
if player.player_down or player.player_up:
player.moving_right = False
else:
player.moving_right = True
player.player_direction = 1
if event.key == pygame.K_a:#向左
game_settings.bullet_direction = 'left'
if player.player_down or player.player_up:
player.moving_left = False
else:
player.moving_left = True
player.player_direction = -1
elif event.key == pygame.K_s:#向下
player.player_down = True
player.player_moving = False
player.moving_left = False
player.moving_right = False
elif event.key == pygame.K_w:#向上
player.player_up = True
player.player_moving = False
player.moving_left = False
player.moving_right = False
elif event.key == pygame.K_j:#射击
new_bullet = Bullet(game_settings,screen,player)
bullets.add(new_bullet)
player.player_shooting = True
elif 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 = False
player.player_moving = False
elif event.key == pygame.K_a:#左
player.image = pygame.image.load('图片/PL/player.png')
player.player_moving = False
player.moving_left = False
elif event.key == pygame.K_s:#下
player.player_down = False
if 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 = False
if 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 = True
check_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
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?