2d游戏设计,pygame 游戏开发

本文介绍了一款2D游戏的设计过程,灵感来源于jumpKing。游戏使用pygame模块,玩家通过A、D键控制角色左右移动,空格键跳跃。文章详细讲解了Player类和Land类的设计,以及游戏的基本代码实现,包括画面设置、游戏循环和碰撞检测。虽然存在一些问题,如人物运动轨迹和碰撞判定,但这次经验为后续游戏开发提供了基础。
摘要由CSDN通过智能技术生成

此次作业是使用pygame模块自主设计一款2D游戏。

此次制作的游戏灵感来源于jumpKing,这是一款出售于steam的高技术游戏。

我们选择了他们的操作方式: 需A、D键来控制人物的移动,以及空格键使人物跳跃,并且空格键蓄力时间越长跳的越高

下面开始介绍一下,我们此次游戏的制作过程吧。

一,设计游戏的基本逻辑和界面。
这是在草稿本上画的一些基础的界面和事件的触发判定等等。

完整的游戏设计并没有在里面完全展示。

二,游戏中的class设计
1,player类
在Player类中,我们给了基础的自身属性:

rect为人物出现的初始位置,我们将人物的初始位置放置于随机出现的第一个平台的中间上方,所以需要创建人物时来导入,方便绘制人物的初始位置。

faceR属性判断人物的运动方向,1代表向右运动,2代表向左运动。

speed属性为人物在x轴上的运动速度。

gravity属性为人物在y轴上的降落速度。

live属性为判断人物是否存活。

Drop函数来控制人物降落。

Move函数控制人物的y轴移动,需要输入time,这个time是玩家按住空格键的时间,以此来控制人物y轴移动的长短。

class Player():
def init(self, pos):
self.rect = pos
self.faceR = 1 #1为向右,2为向左
self.speed = 2
self.gravity = 10
self.live = True #是否存活

def Drop(self):
    self.rect.top += self.gravity
def Move(self, time):
    tmp = 0.2*self.speed*time*time  - self.gravity
    if tmp <= 0:
        tmp = 0
    self.rect.top -= tmp
    self.rect.left += self.speed*time*self.faceR

2,Land类
这个class中,我们给了land类的基本属性:

image属性是用来存储land的图片,

rect属性设定了land的Rect属性,通过后面随机函数产生不同的left值,来控制land出现的不同位置。

rect.topleft接收外界给的init_pos值,即land的left值。

gravity属性为land在y轴上的降落速度。

Move函数即控制land类的降落。

class Land(pygame.sprite.Sprite):
def init(self, land_img, i

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值