python交互式项目实例 外星人入侵

一个游戏项目:
引入模块sys和pygame,模块sys可以指引用户退出,而pygame包含游戏的基本功能。
定义开头run_game(),代码行pygame.init()初始化背景设置,让Python能够正常工作。用pygame.display.set_mode()来创建screen的显示窗口,实参(1200,800)是元组,用来定义窗口的大小。
这个游戏用while来控制循环,其中包含一个事件循环和管理屏幕更新的代码,for循环事件循环。
为访问pygame检测到的事件,使用方法pygame.event.get()。所有键盘和鼠标事件都促使for循环运行,在这个循环中,编写一系列的if语句来检测并响应特定的事件。例如,玩家单击游戏窗口的关闭按钮时,将检测到pygame.QUIT事件,调用sys.exit()退出游戏界面。
每一次while循环都会执行绘制一个空屏幕,并擦去 旧屏幕,使得只有新屏幕可见。在移动游戏元素的时候,pygame.display.flip()将不断更新屏幕,以显示元素的新位置,并在原来位置隐藏元素,从而制造平滑移动的效果。
运行完这些代码之后,你将看到空的pygame窗口。
import sys
import pygame
def run_game():
pygame.init()
screen=pygame.display.set_mode((1200,800))
pygame.display.set_caption(“Alien Invarsion”)
while True:
for event in pygame.event.get():
if event==pygame.QUIT
sys.exit()
pygame.display.flip()
run_game()

创建ship类:
导入模块pygame,ship接受两个参数:引用self和screen,screen指定了飞船将绘制到什么地方。用pygame.image.load()加载飞船的surface,存储到self.image中。加载图像之后,使用get_rect()获取响应surface的属性rect,并存储到self.rect()中。
处理rect对象时,可用矩形四角中心的x和y 坐标,通过指定这些值来指定矩形的位置。
要是矩形元素居中,可设置相应rect的属性center、centerx、centery。要是游戏元素和屏幕边缘对齐,可使用属性top、bottom、left、right。
在pygame中,定义了方法blitme(),根据self.rect()指定的位置绘制到屏幕上。
import pygame
class Ship():
def init(self,screen):
self.screen=screen
self.image=pygame.image.load(‘image/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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值