[Python日记-5] Pygame简单应用-1

fly00love 2020-02-10

终于把枯燥的基础知识过了一遍了,准备按照书本的引导,结合pygame的库做一个alien_invasion小游戏。

虽然很早就接触编程,但是却始终谈不上一个真正的程序员,不管是在专业储备还是发量上。我感觉学习过程就是从“Script kid”、到“Coder”、再到“Programmer”,最后可能才能成为“Engineer”。而我还没有成为“Coder”,还有很多路要走。

慢慢接触这个群体,就像在照镜子一样,一点一点剔除身上的劣端,增加新的思维或者方式。如何成为一个优秀的Programmer?就从不用百度开始吧。

[Python日记-5] Pygame简单应用-1


今天弯路走的太多了,就简单铺陈一下代码得了,累了,毁灭吧,赶紧的。

1. alien_invasion.py

import sys
import pygame
from settings import Settings
from ship import Ship

def run_game():
    # 初始化游戏并创建一个屏幕对象
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")
    # 创建一艘飞船
    ship = Ship(screen)
    # 开始游戏的主循环
    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()

把一些关键代码分到外部的文件中,很方便干净。

2. setting.py

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

感觉pygame和我之前远古时期用过的一款图形库的操作蛮像的,EasyX,好像是这么拼,人生第一款图形库。

3. ship.py

import pygame
class Ship:
    def __init__(self, screen):
        """初始化飞船并设置其初始值"""
        self.screen = screen
        # 加载飞船图像并获取其外接矩形
        self.image = pygame.image.load(‘images/ship.bmp‘)
        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)

明天还会继续,今日份完结,撒花??ヽ(°▽°)ノ?

相关推荐