pygame游戏开发 基础物理建模 粒子系统模拟
2013-08-30 17:09
232 查看
粒子是一种微小的物体,在数学上通常用点来表示其模型。我们可以把粒子想象成颗粒状的物体,如雪花,雨滴,沙尘,烟雾
等特殊的事物。又比如游戏中的怪物,晶体,材料,在需要的时候,也可以通过粒子来实现。俗话说“不积跬步,无以至千里,
不积小流,何以成江海”,单个的粒子是比较平凡的存在,但是如果将大量的粒子聚到一起,就可以实现很多神奇的效果了。
在python中想要定义一个粒子是非常容易的。用“类”实现。
接下来是雪花飘舞的核心代码
当然,逻辑还是有待改进的,首先就没加入重力的作用;其次还可以加入风的效果,只需要在每次赋值snow.vx时加入一个恒定的量即可
等特殊的事物。又比如游戏中的怪物,晶体,材料,在需要的时候,也可以通过粒子来实现。俗话说“不积跬步,无以至千里,
不积小流,何以成江海”,单个的粒子是比较平凡的存在,但是如果将大量的粒子聚到一起,就可以实现很多神奇的效果了。
在python中想要定义一个粒子是非常容易的。用“类”实现。
class Snow(): x = 0 # 雪花的横坐标 y = 0 # 雪花的纵坐标 vx = 0 # 雪花的水平速度 vy = 0 # 雪花的竖直速度 def __init__(self): self.x = random.randint(0,500) # 初始化雪花横坐标 self.y = random.randint(0,500) #初始化雪花纵坐标 def getsnowpos(self): return self.x,self.y # 返回雪花坐标位置
接下来是雪花飘舞的核心代码
def main(): pygame.init() clock = pygame.time.Clock() area = [500,500] screen = pygame.display.set_mode(area) pygame.display.set_caption("PHY") swlist = [] for i in range(0,50): # 建立50个雪花的类 swlist.append(Snow()) while True: screen.fill(0) event = pygame.event.poll() if event.type == pygame.QUIT: pygame.quit() exit(0) if event.type == pygame.KEYDOWN: if event.key == pygame.K_n: pygame.quit() exit(0) clock.tick(30) for snow in swlist: # 每个雪花位置的变换 # if random.randint(0,1): snow.vx = random.randint(-3,3) # 雪花的横向速度 snow.vy = 1 # 雪花的竖直速度 snow.x += snow.vx # 雪花的横轴移动位置 snow.y += snow.vy # 雪花的纵轴移动位置 if snow.y > 500: snow.y = 0 pygame.draw.circle(screen,[255,255,255],snow.getsnowpos(),1); pygame.display.update()
当然,逻辑还是有待改进的,首先就没加入重力的作用;其次还可以加入风的效果,只需要在每次赋值snow.vx时加入一个恒定的量即可
相关文章推荐
- pygame 游戏开发 基础物理建模 摩擦力系统模拟
- pygame 游戏开发 基础物理建模 重力系统模拟
- 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一) .
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
- 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一)
- 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
- 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 【Visual C++】游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
- 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟
- 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟
- 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一)
- 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟
- 游戏开发笔记十八 游戏基础物理建模(一) 匀速与加速运动
- 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一)