前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初识Pygame

初识Pygame

作者头像
楚客追梦
发布2022-11-11 19:38:20
2.3K0
发布2022-11-11 19:38:20
举报
文章被收录于专栏:网页杂谈

pygame zero是专门制作游戏的工具包,给我们提供很多新的功能,Pygame Zero可以轻松无障碍创建游戏,简称为pygame。

pygame基础

运行程序以后,会弹出一个新的界面,我们把这个弹出的界面叫做窗口,窗口中显示的就是程序的运行效果。

python

代码语言:javascript
复制
import pgzrun //导入pygame库
WIDTH = 500 //变量WIDTH控制窗口宽度
HEIGHT = 350 //变量HEIGHT控制窗口高度
def draw():
screen.clear()
screen.blit('pygame', pos=[0,0])
pgzrun.go() //启动pygame程序

绘制角色

├── images/ │   └── kevin.png └── index.py

绘制一个角色分为两个步骤:创建角色,绘制已创建好的角色。 Actor()命令:作用是创建一个角色。

角色名 = Actor(‘角色的造型’)

注意:在填写造型名字的时候,只需要填写’ . ‘ 前面的部分。 例如:图片名为kevin.png,在填写造型名字时,填写kevin.

绘制已创建好的角色,要找到draw()函数,它是pygame约定好的函数,程序运行以后,会被自动执行。所有绘制角色的代码,都需要写在这个函数中。

php

代码语言:javascript
复制
xiaowangzi = Actor('小王子') //创建一个角色xiaowangzi,造型为小王子
def draw():
screen.clear()
screen.blit('小王子实验室', pos=[0,0])
xiaowangzi.draw() //绘制出角色xiaowangzi

python坐标系

在pygame中,程序默认将角色绘制在窗口的左上角。我们可以通过设置角色的坐标,来改变它在窗口中的位置。 窗口左上角顶点的x坐标和y坐标都是0。 向右方向,x坐标逐渐增大。向下方向,y坐标逐渐增大。

php

代码语言:javascript
复制
xiaowangzi = Actor('小王子')
xiaowangzi.x = 200
xiaowangzi.y = 375

可以使用 "角色名.x" "角色名.y" 来设置角色的坐标。

on_key_down函数

在用户按下键盘上的按键时,参数key中保存的是用户按下的按键。

php

代码语言:javascript
复制
def on_key_down(key):
下级代码

在pygame中,当我们按下键盘时,程序会自动执行on_key_down()函数。

php

代码语言:javascript
复制
xiaowangzi = Actor('小王子')
xiaowangzi.x = 200
xiaowangzi.y = 375
def on_key_down():
xiaowangzi.x = 400
xiaowangzi.y = 520

小王子初始位置 [200, 375] , 当按下键盘时小王子会来到坐标为 [400,520] 的位置。

根据按键控制角色移动

php

代码语言:javascript
复制
import pgzrun
WIDTH = 700
HEIGHT = 500
xiaowangzi = Actor('小王子')
xiaowangzi.x = 600
xiaowangzi.y = 400
def draw():
screen.blit('公园', pos=[0,0])
xiaowangzi.draw()
def on_key_down(key):
if key = keys.LEFT:
xiaowangzi.x -= 50 //参数key等于键盘左键时,小王子向左移动,x坐标减少50
if key = keys.RIGHT:
xiaowangzi.x += 50 //参数key等于键盘右键时,小王子向右移动,x坐标增加50
if key = keys.UP:
xiaowangzi.y -= 50 //参数key等于键盘上键时,小王子向上移动,y坐标减少50
if key = keys.DOWN:
xiaowangzi.y += 50 //参数key等于键盘下键时,小王子向下移动,y坐标增加50
pgzrun.go()

鼠标事件

on_mouse_down函数

当按下鼠标上的按键时,执行on_mouse_down()函数的下级代码。

php

代码语言:javascript
复制
def on_mouse_down():
aim.image = '射击'

和on_key_down()函数一样,on_mouse_down()函数也是 pygame约定好的函数。 只要编写on_mouse_down()函数,pygame程序就会在点击鼠标的时候,自动执行这个函数。

php

代码语言:javascript
复制
xiaowangzi = Actor('小王子')
def on_mouse_down():
xiaowangzi.image = ('王子')

初始角色造型为小王子,当点击鼠标,角色造型切换为王子

on_mouse_up函数

当松开鼠标上的按键时,执行on_mouse_up()函数的下级代码。

php

代码语言:javascript
复制
def on_mouse_up():
aim.image = '瞄准'

on_mouse_move函数

on_mouse_move()的括号中可以填写参数pos。

php

代码语言:javascript
复制
def on_mouse_move(pos):
角色名.pos = pos

例如通过打印参数pos可以获得移动鼠标的坐标。

php

代码语言:javascript
复制
def on_mouse_move(pos):
print(pos)

碰撞检测函数colliderect()

在pygame中,有一个专门判断两个角色是否碰到的函数colliderect().

角色a.colliderect(角色b)

php

代码语言:javascript
复制
import pgzrun
xiaowangzi = Actor('小王子')
button = Actor('按钮')
def draw():
screen.blit('公园', [0,0])
xiaowangzi.draw()
button.draw()
def on_key_down():
if xiaowangzi.colliderect(button):
button.image = '按钮按下'
pgzrun.go()

如果角色xiaowangzi碰到了角色button时就将button的造型切换成“按钮按下”。

随机数

random库是使用随机数的Python标准库,在使用randint()命令时一定要调用random库。 random.randint(参数1, 参数2)用于生成一个指定范围内的整数,其中参数1是最小值,参数2是最大值。 生成的随机数n, 参数1 ≤ n ≤ 参数2

php

代码语言:javascript
复制
import random
random.randint(0, 600)

例如

php

代码语言:javascript
复制
import random

WIDTH = 600
HEIGHT = 600

aim = Actor('瞄准状态')

enemy =Actor('正常状态')
enemy.x random.randint(0,600)
enemy.y random.randint(0,600)

update()函数

update()函数是pygame和我们约定好的,它会在程序启动之后自动执行。 程序运行后会自动执行update()函数,一直重复执行,每秒会被执行60次。

完成飞船往返飞行的效果

php

代码语言:javascript
复制
import pgzrun

WIDTH = 600
HEIGHT = 600

airboat = Actor('飞船')
airboat.x = 0
airboat.y = 200

def draw():
screen.blit('太空', [0,0])
airboat.draw()

def update():
airboat.x ++ 3
if airboat.x > 600:
airboat.x = 0
pgzrun.go()

update()函数判断用户按下的按键

keyboard.键盘名称

当按下键盘上相应的键不松开时,keyboard.键盘名称的值就是True,不按时就是False.

php

代码语言:javascript
复制
import pgzrun

def update():
print(keyboard.space)

pgzrun.go()

在update()函数中把keyboard.space打印出来。 点击运行按钮,输出区会一直打印False, 当我们按下空格键,打印的内容就会变成True,松开空格键,就会再次打印False。

php

代码语言:javascript
复制
import pgzrun

WIDTH = 600
HEIGHT = 600

ship = Actor('战舰')

def draw():
screen.blit('太空', [0,0])
ship.draw()

def update():
ship.y += 5
if keyboard.space:
ship.y -= 10
if keyboard.left:
ship.x -= 5
if keyboard.right:
ship.x += 5

pgzrun.go()
pgzrun.go()

角色的初始化

在pygame中,创建一个新角色,需要做三件事: 1、设置角色的初始造型 2、设置角色的初始位置 3、将角色绘制出来 这个过程,也叫作角色的初始化。

php

代码语言:javascript
复制
import pgzrun

WIDTH = 600
HEIGHT = 600

ship = Actor('战舰') //初始造型
ship.x = 300 //初始位置
ship.y = 100

def draw():
screen.blit('太空', [0,0])
ship.draw() //绘制角色
pgzrun.go()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pygame基础
  • 绘制角色
  • python坐标系
  • on_key_down函数
    • 根据按键控制角色移动
    • 鼠标事件
      • on_mouse_down函数
        • on_mouse_up函数
          • on_mouse_move函数
          • 碰撞检测函数colliderect()
          • 随机数
          • update()函数
            • 完成飞船往返飞行的效果
              • update()函数判断用户按下的按键
              • 角色的初始化
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档