实现效果
pygame小鱼文章来源:https://www.toymoban.com/news/detail-765768.html
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文章来源地址https://www.toymoban.com/news/detail-765768.html
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()
到了这里,关于使用pygame让方向键实现角色的移动和转向的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!