主程序:#coding:utf-8importpygamefrommissileimportMissilefromgame_settingsimportGame_settingsimportmissile_gm_funcasmgfdefrun_missile_game():pygame.init()game_settings=Ga...
主程序:#coding:utf-8
import pygame
from missile import Missile
from game_settings import Game_settings
import missile_gm_func as mgf
def run_missile_game():
pygame.init()
game_settings=Game_settings()
screen=pygame.display.set_mode((game_settings.screen_width,game_settings.screen_height))
pygame.display.set_caption('Missile Game')
#加入火箭
missile_one=Missile(game_settings,screen)
while True:
mgf.check_events(missile_one)
missile_one.update_missile()
mgf.update_screen(screen,game_settings,missile_one)
run_missile_game()
子程序1:
#coding:utf-8
class Game_settings():
#屏幕设置
def __init__(self):
self.screen_width=1200
self.screen_height=800
self.bg_color=(0,0,255)
#火箭速度设置
self.missile_speed_factor=2
子程序2:
#coding:utf-8
import pygame
class Missile():
def __init__(self,game_settings,screen):
self.screen=screen
self.image=pygame.image.load('images/ship.bmp')
self.rect=self.image.get_rect()
self.screen_rect=screen.get_rect()
#设置missile的初始位置
self.rect.bottom=self.screen_rect.bottom
self.rect.centerx=self.screen_rect.centerx
#设置标志
self.moving_left=False
self.moving_right=False
self.centera=float(self.rect.centerx)
self.missile_speed_factor=game_settings.missile_speed_factor
def blitme(self):
self.screen.blit(self.image,self.rect)
def update_missile(self):
if self.moving_left and self.rect.left>0:
self.centera-= self.missile_speed_factor
if self.moving_right and self.rect.right
self.centera+=self.missile_speed_factor
self.rect.centerx=self.centera
子程序3:
import pygame
import sys
def check_keydown_event(event,missile):
if event.key==pygame.K_RIGHT:
missile.moving_right==True
if event.key==pygame.K_LEFT:
missile.moving_left=True
def check_keyup_event(event,missile):
if event.key==pygame.K_RIGHT:
missile.moving_right==False
if event.key==pygame.K_LEFT:
missile.moving_left=False
def check_events(missile):
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
if event.type==pygame.KEYDOWN:
check_keydown_event(event,missile)
if event.type==pygame.KEYUP:
check_keyup_event(event,missile)
def update_screen(screen,game_settings,missile):
screen.fill(game_settings.bg_color)
missile.blitme()
pygame.display.flip()
展开