文章目录
🚴大家好!我是近视的脚踏实地,虽然近视,但是脚踏实地,这一篇主要讲Pygame 的动画精灵
(一)什么是动画精灵
动画精灵是指在游戏开发中,那些被赋予灵魂的事物,像前面例子中龟兄。看似很简单,疑问之前实现小乌龟的时候也没有遇到什么难度,因为就只有一个角色
但是在真正的游戏开发中,远远不止只有一个精灵,他们数量随时都会发生变化,比方敌人不断地出现以及被消灭,它们的移动轨迹也并不都是一样的,既然移动轨迹不同,就肯定会发生碰撞,这就说明我们的精灵还要支持碰撞检测,碰撞检测是游戏开发中一个必要的环节
下面通过完成一个小游戏来学习新的知识,同时体验有一个游戏开发的过程,这个小游戏的名字取名叫做 Play TheBall 中文名叫玩个球啊
其中会涉及到碰撞检测,异常处理,计时器,自定义式事件,播放声音,替换鼠标样式,限制鼠标移动范围等等新的知识点。下面介绍一下这个小游戏,
(二)小游戏简介和规则介绍
因为只能上传不超过5M的gif图片,可能看不出规则,然后MarkDown也不支持上传自定义视频,规则可能不太清楚,下面来解释一下
首先就是你的鼠标活动范围只有下面那一小块,你需要在那里面不断地进行摩擦摩擦。在这光滑的玻璃上摩擦,摩擦…不小心自己唱歌了,这个背景音乐就是摩擦😬😬,鼠标在这摩擦的作用就是让那些随机飘出来的黑色球变成建蓝色的球并停止移动。
接着你可以用 W S A D来控制那些蓝色的球,只有是蓝色的才受控制,然后你移动过程中会被随机飞出来的黑球碰撞,球的速度也是随机的,游戏的任务就是把5个不动的黑球用浅蓝色的球填充,你移动那个范围可以按空格来检测,如果放进去了,随机的黑球就不会再撞到他,同时会有成功的音乐响起,直到5个都完成了,游戏结束!
(三)完成黑球随机生成及随机生成速度和自由穿越
下面是这篇要完成一部分任务的素材,后续会慢慢完善,第一张是背景background.png,第二张是精灵素材gray_ball.png
mian.py:👇
import pygame
import sys
from pygame.locals import *
from random import *
# 球类继承自Spirte类
class Ball(pygame.sprite.Sprite):
def __init__(self, image, position, speed, bg_size):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(image).convert_alpha()
self.rect = self.image.get_rect()
self