• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    教你如何在Pygame 中移动你的游戏角色

    Pygame是一组跨平台的 Python 模块,专为编写视频游戏而设计。它包括旨在与 Python 编程语言一起使用的计算机图形和声音库。您可以使用 pygame 创建不同类型的游戏,包括街机游戏、平台游戏等等。

    使用的图像:


    你可以控制玩家的移动。为此,首先使用 pygame 的 display.set_mode() 方法创建一个显示对象,并使用 pygame 的 image.load() 方法添加玩家的精灵。set_mode() 函数用于初始化显示表面或窗口。size 参数是一对代表宽度和高度的数字。flags 参数是附加选项的集合。depth 参数表示用于颜色的位数。

    语法:

    set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0)

    创建一个变量来存储玩家的速度。设置玩家的初始坐标。现在,根据键盘事件(即键状态改变时发生的事件)更改播放器的 x 和 y 坐标。

    blit(surface,surfacerect) 函数用于在屏幕上绘制图像。

    语法:

    blit(surface, surfacerect)

    为了从队列中收集所有事件,使用事件模块的 get() 函数,然后我们使用 for 循环迭代所有事件。

    语法:

    get(eventtype=None)

    使用显示模块的 update() 函数更新屏幕。

    语法:

    update(rectangle=None)

    下面是实现

    示例:玩家移动程序

    # 导入 pygame 模块
    import pygame
    from pygame.locals import *
     
    # 启动 pygame 并授予使用 pygame 功能的权限
    pygame.init()
     
    # 创建特定尺寸的显示面对象
    window = pygame.display.set_mode((600, 600))
     
    # 在窗口中添加标题
    pygame.display.set_caption('Player Movement')
     
    # 添加玩家精灵
    image = pygame.image.load(r'haiyong.png')
     
     
    # 将玩家的初始坐标存储在两个变量中,即 x 和 y
    x = 100
    y = 100
     
    # 创建一个变量来存储玩家移动的速度
    velocity = 12
     
    # 创建无限循环
    run = True
    while run:
     
        # 用白色填充背景
        window.fill((255, 255, 255))
     
        # 在 x 和 y 坐标处显示玩家精灵
        window.blit(image, (x, y))
     
        # 迭代 pygame.event.get() 方法返回的 Event 对象列表。
        for event in pygame.event.get():
     
            # 如果事件类型为 QUIT,则关闭窗口和程序
            if event.type == pygame.QUIT:
                run = False
                pygame.quit()
                quit()
     
            # 如果事件类型为 KEYDOWN,即按下键盘按钮,则检查事件键
            if event.type == pygame.KEYDOWN:
     
                # 如果按下的按钮是左箭头键,则减小 x 坐标
                if event.key == pygame.K_LEFT:
                    x -= velocity
     
                # 如果按下的按钮是右箭头键,则增加 x 坐标
                if event.key == pygame.K_RIGHT:
                    x += velocity
     
                # 如果按下按钮是向上箭头键,则减小 y 坐标
                if event.key == pygame.K_UP:
                    y -= velocity
     
                # 如果按下按钮是向下箭头键,则增加 y 坐标
                if event.key == pygame.K_DOWN:
                    y += velocity
     
            # 将表面对象绘制到屏幕上
            pygame.display.update()

    输出:

    玩家也可以连续移动。为此,除了要进行一些更改外,其他一切都保持不变。在这里,我们创建了一个新的时钟对象来使用 clock() 控制游戏的帧速率。

    语法

    Clock()

    创建一个新变量(名为 key_pressed_is)来存储用户按下的键。为此,我们使用 key 模块的 get_pressed() 函数。

    语法

    get_pressed()

    它返回一个布尔值序列,表示键盘上每个键的状态。

    示例:连续移动玩家

    # 导入 pygame 模块
    import pygame
    from pygame.locals import *
     
    # 启动 pygame 并授予使用 pygame 功能的权限
    pygame.init()
     
    # 创建特定尺寸的显示面对象
    window = pygame.display.set_mode((600, 600))
     
    # 在窗口中添加标题
    pygame.display.set_caption('玩家移动')
     
    # 初始化时钟 时钟用于跟踪和控制游戏的帧速率
    clock = pygame.time.Clock()
     
    # 添加玩家精灵
    image = pygame.image.load(r'haiyong.png')
     
     
    # 将玩家的初始坐标存储在两个变量中,即 x 和 y
    x = 100
    y = 100
     
    # 创建一个变量来存储玩家移动的速度
    velocity = 12
     
    # 创建无限循环
    run = True
    while run:
     
    	# 将帧速率设置为 60 fps
    	clock.tick(60)
     
    	# 用白色填充背景
    	window.fill((255, 255, 255))
     
    	# 在 x 和 y 坐标处显示玩家精灵
    	window.blit(image, (x, y))
     
    	# 迭代 pygame.event.get() 方法返回的 Event 对象列表。
    	for event in pygame.event.get():
     
    		# 如果事件类型为 QUIT,则关闭窗口和程序
    		if event.type == pygame.QUIT:
    			run = False
    			pygame.quit()
    			quit()
     
    	# 使用 key.get_pressed() 方法将按下的键存储在新变量中
    	key_pressed_is = pygame.key.get_pressed()
     
    	# 改变玩家坐标
    	if key_pressed_is[K_LEFT]:
    		x -= 8
    	if key_pressed_is[K_RIGHT]:
    		x += 8
    	if key_pressed_is[K_UP]:
    		y -= 8
    	if key_pressed_is[K_DOWN]:
    		y += 8
     
    	# 将表面对象绘制到屏幕上
    	pygame.display.update()

    输出:

    翻转玩家精灵

    您可以使用 pygame 的转换模块的 flip() 函数轻松翻转任何精灵。例如,如果我们想在玩家改变移动方向时翻转精灵,那么我们可以使用下面的代码

    window.blit(pygame.transform.flip(image, False, True), (x,y))

    flip() 函数用于水平、垂直翻转表面对象。 或两者。 这个函数有三个参数:

    下面是实现。

    示例:翻转播放器图像

    输出:

    我们还可以通过创建精灵列表轻松更新玩家精灵。

    image = [pygame.image.load(r'haiyong.png'),
    pygame.image.load(r'haiyong2.png')]

    示例:更新精灵

    # 导入 pygame 模块
    import pygame
    from pygame.locals import *
     
    # 启动 pygame 并授予使用 pygame 功能的权限
    pygame.init()
     
    # 创建特定尺寸的显示面对象
    window = pygame.display.set_mode((600, 600))
     
    # 在窗口中添加标题
    pygame.display.set_caption('玩家切换')
     
    # 初始化时钟 时钟用于跟踪和控制游戏的帧速率
    clock = pygame.time.Clock()
     
    # 创建一个变量来检查运动方向
    # 每当玩家改变方向时,我们就会改变它的值
    direction = True
     
     
    # 在列表中添加玩家精灵
    image = [pygame.image.load(r'haiyong.png'),
    		pygame.image.load(r'haiyong2.png')]
     
     
    # 将玩家的初始坐标存储在两个变量中,即 x 和 y
    x = 100
    y = 100
     
    # 创建一个变量来存储玩家移动的速度
    velocity = 12
     
    # 创建无限循环
    run = True
    while run:
     
    	# 将帧速率设置为 60 fps
    	clock.tick(60)
     
    	# 用浅灰蓝色填充背景
    	window.fill((176, 224, 230))
     
    	# 在 x 和 y 坐标处显示玩家精灵
        # 如果玩家改变方向,则改变玩家精灵
    	if direction == True:
    		window.blit(image[0], (x, y))
    	if direction == False:
    		window.blit(image[1], (x, y))
     
    	# 迭代 pygame.event.get() 方法返回的 Event 对象列表。
    	for event in pygame.event.get():
     
    		# 如果事件类型为 QUIT,则关闭窗口和程序
    		if event.type == pygame.QUIT:
    			run = False
    			pygame.quit()
    			quit()
     
    		# 改变方向变量的值
    		if event.type == pygame.KEYDOWN:
    			if event.key == pygame.K_RIGHT:
    				direction = True
    			elif event.key == pygame.K_LEFT:
    				direction = False
     
    	# 使用 key.get_pressed() 方法将按下的键存储在新变量中
    	key_pressed_is = pygame.key.get_pressed()
     
    	# 改变玩家坐标
    	if key_pressed_is[K_LEFT]:
    		x -= 5
    	if key_pressed_is[K_RIGHT]:
    		x += 5
    	if key_pressed_is[K_UP]:
    		y -= 5
    	if key_pressed_is[K_DOWN]:
    		y += 5
     
    	# 将表面对象绘制到屏幕上
    	pygame.display.update()

    换张图试试

    到此这篇关于教你如何在Pygame 中移动你的游戏角色的文章就介绍到这了,更多相关Pygame移动游戏角色内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Pygame做一期吃豆子游戏的示例代码
    • Python3+Pygame实现射击游戏完整代码
    • python pygame 愤怒的小鸟游戏示例代码
    • python基于pygame实现飞机大作战小游戏
    • python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
    • 使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
    上一篇:PyTorch一小时掌握之基本操作篇
    下一篇:python实现心型照片墙效果
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    教你如何在Pygame 中移动你的游戏角色 教你,如,何在,Pygame,中,移动,