使用pygame让方向键实现角色的移动和转向
实现效果
pygame小鱼
1.导入包pygame和sys
import pygame
import sys
from pygame.locals import *
2.初始化pygame,设置窗口大小
pygame.init()
screen = pygame.display.set_mode((800, 400))
3.导入角色图片
(1)先加载图片
img=pygame.image.load("./fish.png") # ./代表当前目录
(2)图片过大需要缩放
img=pygame.transform.scale(img,(50,50)) #可以将角色缩放
(3)获得图片的位置和大小
pos = img.get_rect()
4.展示图片
while True: # 游戏主循环
for event in pygame.event.get(): # 获取事件
if event.type == QUIT: # 退出
pygame.quit() # 退出pygame模块
sys.exit() # 退出系统
screen.fill((0,204,255)) # 使用蓝色填充窗口
screen.blit(img,pos) # 在窗口上绘制图像
pygame.display.update() # 更新窗口画面显示
5.用键盘控制角色上下左右移动
while True:
for event in pygame.event.get():
......
......
key = pygame.key.get_pressed() # 获取键盘状态
if key[K_UP] and pos.top > 0: # 如果方向键上按下,并且没有超过上边界
pos.y -= 5 # 向上移动一个速度的值
if key[K_DOWN] and pos.bottom < 400: # 如果方向键下按下,并且没有超过下边界
pos.y = 5 # 向下移动一个速度的值
if key[K_LEFT] and pos.left > 0: # 如果方向键左按下,并且没有超过左边界
pos.x -= 5 # 向左移动一个速度的值
if key[K_RIGHT] and pos.right < 800: # 如果方向键右按下,并且没有超过右边界
pos.x = 5 # 向右移动一个速度的值
screen.fill((0,204,255)) # 使用蓝色填充窗口
......
......
7.改变方向
transform.flip(Surface,xbool,ybool)可以将图片进行翻转,返回一个新图像
Surface:需要翻转的图像
xbool:是否水平翻转,True/False
ybool:是否垂直翻转,True/False
img_=pygame.transform.flip(img,True,False) #新建一个图片对象,用来存放面向左边的图片
8.全部代码
import pygame
import sys
from pygame.locals import *
clock = pygame.time.Clock()
img = pygame.image.load("./fish.png")
img=pygame.transform.scale(img,(50,50)) #可以将角色缩放
img_=pygame.transform.flip(img,True,False) #新建一个图片对象,用来存放面向左边的图片
pos = img.get_rect()
screen = pygame.display.set_mode((800, 400))
speedx = 5
speedy = 5
pygame.mouse.set_visible(False) # 隐藏鼠标
while True:
clock.tick(60) # 每秒不超过60帧的速度运行
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
'''# 让角色跟着鼠标走
mouse_pos = pygame.mouse.get_pos() # 获取鼠标位置
pos.center=mouse_pos #修改角色中心位置为鼠标位置'''
# 用键盘控制角色上下移动
key = pygame.key.get_pressed() # 获取键盘状态
if key[K_UP] and pos.top > 0: # 如果方向键上按下,并且没有超过上边界
pos.y -= speedy # 向上移动一个速度的值
if key[K_DOWN] and pos.bottom < 400: # 如果方向键下按下,并且没有超过下边界
pos.y = speedy # 向下移动一个速度的值
if key[K_LEFT] and pos.left > 0: # 如果方向键左按下,并且没有超过左边界
img = img_ #当按下左键时,图像变成面向左边的图片
pos.x -= speedx # 向左移动一个速度的值
if key[K_RIGHT] and pos.right < 800: # 如果方向键右按下,并且没有超过右边界
img = pygame.image.load("./fish.png") #当按下右键时载入原图
img = pygame.transform.scale(img, (50, 50)) # 可以将角色缩放
pos.x = speedx # 向右移动一个速度的值
screen.fill((0, 204, 255)) # 用纯色填充窗口
screen.blit(img, pos) # 绘制图像
pygame.display.update()
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggebba
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13