pygame精灵组有哪些方法_利用 pygame 开发一款游戏:「跳跳兔」(完结篇)

前言

通过前面九篇文章的编写,「跳跳兔」游戏基本已经被编写出来了,本节在此基础上进一步完善它,并添加上云彩背景。

添加云彩背景

添加云彩背景的大致步骤如下。

  • 1. 编写云彩类
  • 2. 载入云彩图片
  • 3. 随机生成云彩
  • 4. 云彩同步移动

一步步来编写,首先是创建云彩类,代码如下。

  1. # sprites.py
  2. class Cloud(pg.sprite.Sprite):
  3. def __init__(self, game):
  4. self._layer = CLOUD_LAYER
  5. self.groups = game.all_sprites, game.clouds
  6. pg.sprite.Sprite.__init__(self, self.groups)
  7. self.game = game
  8. self.image = random.choice(self.game.cloud_images)
  9. self.image.set_colorkey(BLACK)
  10. self.rect = self.image.get_rect()
  11. # 随机出现位置
  12. scale = random.randrange(50, 101) / 100
  13. self.image = pg.transform.scale(self.image, (int(self.rect.width * scale),
  14. int(self.rect.height * scale)))
  15. self.rect.x = random.randrange(WIDTH - self.rect.width)
  16. self.rect.y = random.randrange(-500, -50)
  17. def update(self):
  18. # 云朵大于2倍高度,就被消除
  19. if self.rect.top > HEIGHT * 2:
  20. self.kill()

代码内容与此前内容非常类似,不再详细分析。

但你仔细观察,你会发现,Cloud 类的__init__() 方法中创建了 self._layer,并通过如下形式将其加入到相应的 groups 中。

  1. self.groups = game.all_sprites, game.clouds
  2. pg.sprite.Sprite.__init__(self, self.groups)

这是一个优化点,后文再讨论。

构建了 Cloud 类后,接着要做的就是载入图片、随机生成以及同步移动了,轻车熟路。

  1. # main.py/Game
  2. def load_data(self): # 加载数据
  3. # ... 省略无关代码
  4. # 加载云彩图片
  5. self.cloud_images = []
  6. for i in ran
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用pygame开发一款游戏可以实现图形界面和交互功能。下面是一个简单的示例,展示了如何使用pygame创建一个窗口并显示一个移动的小球: ```python import pygame import random # 初始化pygame pygame.init() # 设置窗口尺寸 width, height = 800, 600 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("小球移动游戏") # 定义小球的初始位置和速度 ball_radius = 20 ball_x = random.randint(ball_radius, width - ball_radius) ball_y = random.randint(ball_radius, height - ball_radius) ball_speed_x = random.randint(-5, 5) ball_speed_y = random.randint(-5, 5) # 游戏主循环 running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 更新小球位置 ball_x += ball_speed_x ball_y += ball_speed_y # 碰撞检测 if ball_x < ball_radius or ball_x > width - ball_radius: ball_speed_x = -ball_speed_x if ball_y < ball_radius or ball_y > height - ball_radius: ball_speed_y = -ball_speed_y # 填充背景色 screen.fill((255, 255, 255)) # 绘制小球 pygame.draw.circle(screen, (255, 0, 0), (ball_x, ball_y), ball_radius) # 更新屏幕 pygame.display.flip() # 退出游戏 pygame.quit() ``` 这个示例使用pygame库创建了一个窗口,并在窗口中显示一个移动的小球。小球会在窗口内随机移动,并在碰到窗口边界时反弹。你可以根据自己的需求修改代码,添加更多的游戏元素和交互功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值