python3_game

  • 安装pygame
pip3 install pygame
#apt install python3-dev mercurial libsdl-image1.2-dev libsdl2-dev libsdl-ttf2.0-dev
high:
apt install libsdl-mixer1.2-dev libportmidi-dev python-numpy
apt install libswscale-dev libsmpeg-dev libavformat-dev libavcodec-dev 
  • 检查是否安装成功
import pygame 	#导入不报错
import sys
import pygame

def run_game():
    pygame.init() #初始化game并创建一个屏幕对象
    screen=pygame.display.set_mode((1200,800)) #创建一个指定像素大小的显示窗口。
    pygame.display.set_caption("Alien Invasion") #窗口标题
    bg_color = (230,230,230) #指定背景色,默认创建一个黑色屏幕。
    while True:
        for event in pygame.event.get(): #这个方法用来检测所有的键盘和鼠标事件。
            if event.type == pygame.QUIT: #使用if语句来检测相应特定的事件。例如退出游戏时的关闭按钮(pygame.QUIT事件)
                sys.exit() #退出程序
        screen.fill(bg_color) #每次循环时都重新绘制屏幕。用背景色填充。
        pygame.display.flip() #让最近绘制的屏幕可见。
        #移动游戏元素时,将不断更新屏幕。

run_game()        

version 2.0

  • 为了更加易于配置管理,创建了settings模块
    alien.py主程序
import sys
import pygame
from settings import Settings #add
from ship import Ship #add

def run_game():
    pygame.init()
    ai_settings = Settings() #add
    screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) #xiu 
    pygame.display.set_caption("Alien Invasion")
    bg_color = (230,230,230)
    ship = Ship(screen) #add
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        screen.fill(ai_settings.bg_color) #修
        ship.blitme()
        pygame.display.flip()

run_game()

settings.py

class Settings():
    """存储game的所有设置的类"""
    def __init__(self):
        """初始化game的设置"""
        #屏幕设置
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (230,230,230)
                                            

ship.py

import pygame

class Ship():
    def __init__(self,screen):
        """初始化ship并设置其初始位置"""
        self.screen = screen

        self.image = pygame.image.load('images/ship.bmp') #加载ship图片
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()

        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = self.screen_rect.bottom
    def blitme(self):
        """指定位置绘制飞船"""
        self.screen.blit(self.image,self.rect)

在这里插入图片描述

发布了80 篇原创文章 · 获赞 0 · 访问量 1743

猜你喜欢

转载自blog.csdn.net/weixin_41272269/article/details/104407246