教娃编程系列|PRG - The Player Class

向量数据库大模型机器学习

这个RPG教程中最重要的类是Player类。这个类负责几乎所有与玩家相关的事情,包括移动、攻击、碰撞检测、渲染、状态跟踪等等。

由于它的总大小和许多概念,我们将在教程系列的其余部分慢慢构建Player类。在本教程和下一个教程中,我们将专注于为Player类创建基本代码。

Creating the Player Class

如果你已经通过我们之前的Backgrounds教程,你会知道self.imageself.rect变量分别存储(图像和Rect对象)的是什么。

  
class Player(pygame.sprite.Sprite):  
    def \_\_init\_\_(self):  
        super().__init__()  
        self.image = pygame.image.load("Player\_Sprite\_R.png")  
        self.rect = self.image.get_rect()  
   
        # Position and direction  
        self.vx = 0  
        self.pos = vec((340, 240))  
        self.vel = vec(0,0) # 速度  
        self.acc = vec(0,0) # 加速度  
        self.direction = "RIGHT"  

现在讲下position和direction变量。self.direction 用于存储 Player 的当前方向。默认情况下,我们让玩家面朝右。

另外三个变量,self.pos,self.velself.acc是使用我们在第一个教程中创建的矢量对象创建的。这意味着这些变量现在有两个组件,可以以以下格式访问,self.pos.xself.pos.y。这是将两个组件保持在一个变量中而不是两个单独的变量中的一种有用的方法。

至于这三个变量的用途,self.pos表示玩家的位置self.vel代表玩家的速度self.acc代表玩家的加速度 。(如果你学过物理,你应该知道速度和加速度有垂直水平 分量)

Creating the remaining functions

我们将在本系列后面的相应教程中介绍其余的函数。现在只需要记住它们的存在以及它们的目的是什么(move是为了移动代码,attack是为了攻击代码)。

  
def move(self):  
      pass  
   
def update(self):  
      pass  
   
def attack(self):  
      pass  
   
def jump(self):  
      pass  

同样,我们使用pass关键字作为占位符。将函数保留为空终究会导致错误。还要记住方法的缩进。不正确的缩进将导致方法不是Player类的一部分。

Creating the player object

一旦我们完成了类,我们就必须创建Player对象,通过它所有的交互都将发生。事实上,你可以从同一个类中创建多个对象,这也开启了创建双人游戏 的可能性。

  
player = Player()  

记住要在游戏循环之前,而不是在循环中声明这一点。

最后,我们需要渲染我们的玩家。我们将添加以下代码行,放在地面和背景的渲染后面。当然,所有这些渲染函数都在游戏循环中,因为它们每帧都需要重新绘制。

  
background.render()  
ground.render()  
displaysurface.blit(player.image, player.rect)  

我们不“必须”创建渲染函数。我们通过直接为玩家编写blit()方法来展示这一点。而且这次我们只是将player.rect传递给blit(),因为rect存储了一对坐标。

下图是pygame窗口中玩家精灵的截图。

picture.image

在这里插入图片描述

我们的Player位于左上角的原因是因为我们没有传递一个center = (x,y)。因此,palyer rect的默认值为(0,0)。这个问题将在后面的系列中解决,所以不用担心。

Next Section

本教程只是对Player类的介绍。在接下来的4 - 5个教程中,我们将慢慢地构建游戏和玩家类,所以请密切关注。

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动客户端性能优化最佳实践
在用户日益增长、需求不断迭代的背景下,如何保证 APP 发布的稳定性和用户良好的使用体验?本次分享将结合字节跳动内部应用的实践案例,介绍应用性能优化的更多方向,以及 APM 团队对应用性能监控建设的探索和思考。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论