没有合适的资源?快使用搜索试试~ 我知道了~
Android游戏开发学习②焰火绽放效果实现方法
0 下载量 41 浏览量
2021-01-20
09:40:05
上传
评论
收藏 228KB PDF 举报
温馨提示
试读
5页
本文实例讲述了Android游戏开发学习②焰火绽放效果实现方法。分享给大家供大家参考。具体如下: 本节介绍在游戏开发中常用到的数学物理应用——粒子系统。粒子系统与上一节的小球有类似的地方,都是通过数学方法和物理公式模拟客观世界中的物体的运动轨迹。不同的是小球更强调个体运动,而焰火粒子等粒子系统更注重整体感觉。 一、焰火粒子效果 1.粒子对象类Particle类和粒子集合类ParticleSet类 每个粒子都为一个Particle类的对象,程序中产生的所有Particle对象都由一个ParticleSet对象来管理。 Particle类: package com.particle; publi
资源推荐
资源详情
资源评论
Android游戏开发学习游戏开发学习②焰火绽放效果实现方法焰火绽放效果实现方法
本文实例讲述了Android游戏开发学习②焰火绽放效果实现方法。分享给大家供大家参考。具体如下:
本节介绍在游戏开发中常用到的数学物理应用——粒子系统。粒子系统与上一节的小球有类似的地方,都是通过数学方法和物理公式模拟客观世
界中的物体的运动轨迹。不同的是小球更强调个体运动,而焰火粒子等粒子系统更注重整体感觉。
一、焰火粒子效果
1.粒子对象类Particle类和粒子集合类ParticleSet类
每个粒子都为一个Particle类的对象,程序中产生的所有Particle对象都由一个ParticleSet对象来管理。
Particle类:
package com.particle;
public class Particle {
int color; // 粒子颜色
int r; // 粒子半径
double vertical_v; // 垂直速度
double horizontal_v; // 水平速度
int startX; // 初始X坐标
int startY; // 初始Y坐标
int x; // 实时X坐标
int y; // 实时Y坐标
double startTime; // 起始时间
public Particle(int color, int r, double vertical_v, double horizontal_v, int x, int y, double startTime) {
super();
this.color = color;
this.r = r;
this.vertical_v = vertical_v;
this.horizontal_v = horizontal_v;
this.startX = x;
this.startY = y;
this.x = x;
this.y = y;
this.startTime = startTime;
}
}
ParticleSet类:
package com.particle;
import java.util.ArrayList;
import android.graphics.Color;
public class ParticleSet {
ArrayList<Particle> particleSet;
public ParticleSet() {
particleSet = new ArrayList<Particle>();
}
/**
* 向粒子集合中添加指定数量的粒子对象
*/
public void add(int count, double startTime) {
for (int i = 0; i < count; i++) {
int tempColor = this.getColor(i);
int tempR = 1; // 粒子半径
double tempv_v = -30 + 10 * (Math.random()); // 随机产生粒子竖直方向的速度
double tempv_h = 10 - 20 * (Math.random()); // 随机产生粒子水平方向的速度
int tempX = 160;
int tempY = (int) (100 - 10 * (Math.random())); // 随机产生粒子Y坐标,90到100之间
Particle particle = new Particle(tempColor, tempR, tempv_v,
tempv_h, tempX, tempY, startTime);
particleSet.add(particle);
}
}
/**
* 获取指定索引的颜色
*/
public int getColor(int i) {
int color = Color.RED;
switch (i%4) {
case 0:
color = Color.RED;
break;
case 1:
color = Color.GREEN;
break;
case 2:
color = Color.YELLOW;
break;
case 3:
color = Color.GRAY;
break;
}
return color;
}
}
资源评论
weixin_38710566
- 粉丝: 5
- 资源: 1029
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功