1.创建子弹
import pygame from pygame.sprite import Sprite class Bullet(Sprite): def __init__(self,ai_settings,screen,ship): super(Bullet,self).__init__() self.screen=screen self.rect=pygame.Rect(0,0,ai_settings.bullet_width,ai_settings.bullet_height) self.rect.centerx=ship.rect.centerx #子弹的中心是飞船的中心位置 self.rect.top=ship.rect.top #子弹的顶部是非常的顶部。让子弹看着是从飞船里面飞出来的一样。 self.y=float(self.rect.y) #子弹向上移动所以是y坐标,用float小数微调子弹的速度。 self.color=ai_settings.bullet_color self.speed_factor=ai_settings.bullet_speed_factor def update(self): self.y -=self.speed_factor self.rect.y=self.y def draw_bullet(self): pygame.draw.rect(self.screen,self.color,self.rect)
2.
class Settings(): def __init__(self,bg_color): #__init__是类的方法。每创建新实例时会自动调用 screen_width = input("please input what you like the screen width,default 800") self.screen_width = int(screen_width) screen_height = input("please input what you like the screen height,default 1200") self.screen_height = int(screen_height) self.bg_color = bg_color self.ship_speed_factor=0.5 self.bullet_speed_factor=0.3 self.bullet_width=1 self.bullet_height=8 self.bullet_color=29,25,26
3.
import pygame import game_functions as gf from pygame.sprite import Group from bullet import Bullet from ship import Ship from setting import Settings def run_game(): pygame.init() ai_settings=Settings(‘white‘) screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") ship = Ship(ai_settings,screen) bullets=Group() while True: gf.check_events(ship) ship.update() bullets.update() gf.update_screen(ai_settings,screen,ship) run_game()
原文:https://www.cnblogs.com/youngyounglady/p/14381479.html