一、实验内容:跳动的小球游戏介绍
二、实验对象:《零基础学Python》第13章 Pygame游戏编程 实例01
用以下代码创建一个游戏弹窗:
导入pygame模块并且用init()方法初始化,设置窗口的宽和高,使用display模块显示窗体。
点击查看代码
import sys
import pygame
pygame.init()
size=width,height=640,480 #初始化pygame
screen=pygame.display.set_mode(size)
使用pygameevent.get()获取事件队列,用for...in遍历事件,type属性判断事件类型.
点击查看代码
for event in pygame.event.get():
if event.type == pygame.QUIT:
使用image模块的load()方法加载图片,在窗口中添加小球的代码如下:
点击查看代码
ball=pygame.image.load("ball.png")
ballrect=ball.get_rect()
...
screen.blit(ball,ballrect) #将图片画到窗口上
将move()函数添加到while循坏内,实现小球不停地移动:
点击查看代码
while True:
clock.tick(60)
#检查事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
ballrect = ballrect.move(speed)
添加碰撞检测的功能和“时钟”,“时钟”是为了控制程序运行的时间,整个小游戏的完整代码以及运行结果如下:
点击查看代码
#-*- coding:utf-8-*-
import sys
import pygame
pygame.init()
size=width,height=640,480 #初始化pygame
screen=pygame.display.set_mode(size)
color=(0,0,0) #设置颜色
ball=pygame.image.load("ball.png")
ballrect=ball.get_rect()
speed=[5,5]
clock=pygame.time.Clock() #设置时钟
#执行死循环,确保窗口一直显示
while True:
clock.tick(60)
#检查事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
ballrect = ballrect.move(speed)
#碰到左右边缘
if ballrect.left < 0 or ballrect.right > width:
speed[0]=-speed[0]
#碰到上下边缘
if ballrect.top < 0 or ballrect.bottom > height:
speed[1]=-speed[1]
screen.fill(color) #填充颜色
screen.blit(ball,ballrect) #将图片画到窗口上
pygame.display.flip() #更新全部显示