java - 粒子堆算法

标签 java android game-physics

我正在创建一个游戏,其中有大约 3000 个粒子落入一堆。每个粒子都是一个像素,我只是使用 boolean 值 [][] 来设置和检查哪个像素是清晰的。现在我正在使用这段代码

if (!isFalling(m)) {
    if (isClear(getX() + 1, getY()) && isClear(getX() + 1, getY() - 1))
        setX(getX() + 1);
    else if (isClear(getX() - 1, getY()) && isClear(getX() - 1, getY() - 1)
        setX(getX() - 1);
}

问题是这段代码给我一个看起来不太自然的非常严格的金字塔形状。如果你把它倒成一堆,我希望它看起来像盐。我的问题是,有人知道模拟粒子堆的算法或更好的方法吗? 任何帮助将不胜感激。

解决方法: 我找到了一篇不错的文章 here

最佳答案

您承担了一项艰巨的任务 :) 这不仅仅是如何计算和绘制粒子,而是描述粒子应该如何移动的物理学。

先看看这个:

http://www.daniweb.com/software-development/java/threads/426676/sand-game-problem-with-graphics

谷歌搜索时,尝试“粒子发生器”或“粒子发射器”。

另见这个问题:

How do those java sand games keep track of so many particles?

您可能缺少的主要内容是在您的系统中添加随机性,一些熵。

关于java - 粒子堆算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884660/

相关文章:

java - 如何在 Google 应用引擎中设置 Unicode?

像安卓一样的Java语音识别

php - 从php发送一个数组并在android中接收它

android - 使用按位或向 LayoutParams.addRule() 发送多个标志是否有意义?

javascript - 如何在 Canvas 中创建一个跟随玩家旋转和旋转的相机 View ?

java - java中带字节的命令<<

java - 如何读取 读取/获取 Dropbox 文件

javascript - 初始切换后,侧边栏停止在 Android Chrome 上显示

java - 在游戏中随机生成物体

java - LibGDX 运动不流畅