pygame学习笔记-打砖块游戏开发日志(二)

本文记录了使用pygame库开发打砖块游戏的过程,包括绘制挡板、砖块,实现键盘响应及砖块的排列。通过创建精灵组,实现了球、挡板与砖块的初步布局。下一步将利用pygame的碰撞检测功能,让游戏元素间产生互动。
摘要由CSDN通过智能技术生成

接着昨天的程序继续写下去,昨天我们已经绘制了好了挡板并且实现了挡板对键盘的响应使之能够根据按键进行移动。今天我们开始绘制砖块。那么大概的思路是将所有砖块定义为精灵,然后全部添加进一个精灵组里面。这样方便后面去做砖块和球的冲突判断。

这里我使用了surface.subsurface(rect)这个方法,给砖块进行贴图。我们先绘制一个砖块,来看看代码功能是否正常。其实代码非常简单。

class Block(Sprite):
    def __init__(self,screen):
        super().__init__()
        self.screen = screen
        self.image = pygame.image.load('Block.png')
        self.rect = self.image.get_rect()
        self.frame_rect = self.rect.copy()
        self.frame_rect.width = self.frame_rect.width / 4
        self.frame_rect.height = self.frame_rect.height / 2
        self.rect = self.frame_rect
        self.frame = 0 
        self.last_frame = 7

    def update(self):
        self.block_image = self.image.subsurface(self.frame_rect)

    def blitme(self):
        self.screen.blit(self.block_image,self.rect)

好了让我们来看看效果怎么样?


看起来效果还不错。

那么接下来要做的就是将砖块放入精灵组中,并且将砖块排列好。

这里我用的是数组对砖块进行排列。

其实这里我用的还是一种比较原始的方法,这个在后面有很大的优化空间。首先我来定义一个数组,这个数组用来规划砖块的摆放。其中的数字代表当前砖块的帧,也就是

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值