pygame最小游戏框架

了解更多关注微信公众号“木下学Python”吧~

 

外星人入侵源码:链接:https://pan.baidu.com/s/1RZky9nMCOj_VYb3NNpDAag 密码:482m

 

游戏的最小框架

import pygame,sys


#初始化所有信息
pygame.init()
screen = pygame.display.set_mode((600,400)) #设置窗口大小
pygame.display.set_caption('Pygame游戏之旅') #设置左上角窗口名称

#开始游戏,事件响应
while True:
      for event in pygame.event.get(): #获取时间并响应
          if event.type == pygame.QUIT: #如果事件类型是退出,退出游戏
              sys.exit()
      pygame.display.update() #刷新事件(刷新屏幕)

 

窗口坐标

 

引入图像

 

引入音乐

pygame.mixer.init()
pygame.mixer.music.load('grace.mp3')
pygame.mixer.music.play()

 

移动偏移量

 

刷新屏幕

确保图像src一定绘制在,图像dest中

 

操作时间,控制刷新帧率

clock = pygame.time.Clock()

 

对键盘的敲击响应

属于事件,放在事件循环里面

 

例子一个控制小球速度的游戏

import pygame,sys


#初始化所有信息
pygame.init()
size = width,height = 600,400 #设置屏幕大小
speed = [1,1] #设置速度
BLACK = 0,0,0 #设置背景颜色
screen = pygame.display.set_mode((600,400)) #设置窗口大小
pygame.display.set_caption('Pygame游戏壁球')
ball = pygame.image.load('PYG02-ball.gif') #导入小球图片
ballrect = ball.get_rect() #实例化小球图片为矩形
fclock = pygame.time.Clock()
fps = 300

#开始游戏,事件响应
while True:
      for event in pygame.event.get(): #获取时间并响应
          if event.type == pygame.QUIT: #如果事件类型是退出,退出游戏
              sys.exit()
          elif event.type == pygame.KEYDOWN:
              if event.key == pygame.K_LEFT:                  #速度减一               #判断符号
                  speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1) * int(speed[0] / abs(speed[0]))
              elif event.key == pygame.K_RIGHT:
                  speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
              elif event.key == pygame.K_UP:
                  speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1
              elif event.key == pygame.K_DOWN:
                  speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) - 1) * int(speed[1] / abs(speed[1]))
      ballrect = ballrect.move(speed[0],speed[1]) #小球移动

      #判断小球是否在窗口,不在,速度取反
      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(BLACK) #图片移动后,重新填充背景色
      screen.blit(ball,ballrect) #确保小球绘制在窗口内
      pygame.display.update() #刷新事件(刷新屏幕)
      fclock.tick(fps) #设置每秒钟刷新300针

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值