• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

使用pygame让方向键实现角色的移动和转向

武飞扬头像
_siyu_
帮助1

实现效果

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
系列文章
更多 icon
同类精品
更多 icon
继续加载