一、目的
1、学习pygame基本框架,随机画圆和方框;
二、程序运行结果
三、pygame基本框架
看程序中def run这里。在游戏运行时,循环里包括三块,event_loop,update和draw,这也是游戏组成的几个部分。
1、首先event_loop是获取玩家输入的,比如通过WSAD控制角色移动,代码里实现的是玩家点叉退出和按Esc键退出。
2、其次update处理游戏逻辑,比如角色和boss距离在100px时boss发起攻击。代码里pass,因为只是一个label显示,如果让label变成blinker,一闪一闪的。就可以在update里面调用label.update方法,然后就ok了。
3、最后是draw和display.update。就是显示在屏幕上咯,经过逻辑计算后,角色和boss的位置在屏幕上显示。代码里就把label在屏幕上显示出来了。
经过这个过程后,玩家再次输入,控制角色开始新的循环。
四、源代码
"""
程序名称:Game2020_001.py
编程: dalong10
功能: 矩形、圆型画图实例的实现
参考资料: https://www.jb51.net/article/64104.htm
"""
import pygame as pg
import time
import random
class Game(object):
def __init__(self,width,height):
self.screen_width = width
self.screen_height = height
self.screen = pg.display.set_mode((self.screen_width,self.screen_height))
screencaption=pg.display.set_caption('我的游戏')
self.screen.fill([255,255,255])
self.done = False
self.clock = pg.time.Clock()
self.fps = 60.0
for i in range(5):
zhijing=random.randint(0,100)
width=random.randint(0,100)
height=random.randint(0,100)
top=random.randint(0,200)
left=random.randint(0,300)
pg.draw.circle(self.screen,[0,0,0],[top,left],zhijing,1)
pg.draw.rect(self.screen,[255,0,0],[left,top,width,height],3)
def event_loop(self):
for event in pg.event.get():
if event.type == pg.QUIT:
self.done = True
if event.type == pg.KEYDOWN:
if event.key == pg.K_ESCAPE:
self.done = True
def draw(self):
pass
def update(self,dt):
pass
def run(self):
dt = self.clock.tick(self.fps)
while not self.done:
self.event_loop()
self.update(dt)
self.draw()
pg.display.update()
if __name__ == '__main__':
pg.init()
game = Game(400,300)
game.run()
pg.quit()
五、参考资料