zoukankan      html  css  js  c++  java
  • [Python日记-5] Pygame简单应用-1

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

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

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

      


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

    1. alien_invasion.py

     1 import sys
     2 import pygame
     3 from settings import Settings
     4 from ship import Ship
     5 
     6 def run_game():
     7     # 初始化游戏并创建一个屏幕对象
     8     pygame.init()
     9     ai_settings = Settings()
    10     screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
    11     pygame.display.set_caption("Alien Invasion")
    12     # 创建一艘飞船
    13     ship = Ship(screen)
    14     # 开始游戏的主循环
    15     while True:
    16         #监视键盘和鼠标事件(时间循环)
    17         for event in pygame.event.get():
    18             if event.type == pygame.QUIT:
    19                 sys.exit()
    20         #每次循环时都重绘屏幕
    21         screen.fill(ai_settings.bg_color)
    22         ship.blitme()
    23         #让最近绘制的屏幕可见(屏幕更新循环)
    24         pygame.display.flip()
    25 run_game()

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

    2. setting.py

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

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

    3. ship.py

     1 import pygame
     2 class Ship:
     3     def __init__(self, screen):
     4         """初始化飞船并设置其初始值"""
     5         self.screen = screen
     6         # 加载飞船图像并获取其外接矩形
     7         self.image = pygame.image.load('images/ship.bmp')
     8         self.rect = self.image.get_rect()
     9         self.screen_rect = screen.get_rect()
    10         # 将每艘新飞船放在屏幕底部中央
    11         self.rect.centerx = self.screen_rect.centerx
    12         self.rect.bottom = self.screen_rect.bottom
    13     def blitme(self):
    14         """在指定位置绘制飞船"""
    15         self.screen.blit(self.image, self.rect)

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

  • 相关阅读:
    六:Vue之父子组件间的三种通信方式
    五:Vue之ElementUI 表格Table与分页Pagination组件化
    四:Vue之VUEX状态管理
    三:Vue之混入(mixin)与全局混入
    二:Vue之ElementUI Form表单校验
    一:Vue之开发环境搭建
    变了,说不出来的感觉。
    20180320作业2:进行代码复审训练
    20180320作业1:源代码管理工具调查
    15软工课后作业02-15100120
  • 原文地址:https://www.cnblogs.com/vilogy/p/12292701.html
Copyright © 2011-2022 走看看