質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

OpenGL ES

携帯電話のような組込み機器のためにデザインされたOpenGLのサブセットです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

パーティクル生成される位置を広げたい。

kaaa
kaaa

総合スコア29

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

OpenGL ES

携帯電話のような組込み機器のためにデザインされたOpenGLのサブセットです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1回答

0グッド

0クリップ

1832閲覧

投稿2015/04/09 15:05

編集2015/04/10 06:18

お世話になっております。
パーティクルをランダム生成しているのですが、このパーティクルが生成される位置をもっと左右に広げたいとおもっておりますが、どのようにするのが的確でしょうか?
画像ですと、四角で囲った部分からパーティクルが生成されますが、◯の位置からも生成したいです。

![イメージ説明]WIDTH:363

何卒よろしくお願いいたします。

lang

1public class ParticleSystem { 2 private Particle[] mParticles; 3 //パーティクルの数 4 private int PARTICLECOUNT = 15; 5 6 // for use to draw the particle 7 private FloatBuffer mVertexBuffer; 8 private ShortBuffer mIndexBuffer; 9 10 public ParticleSystem() { 11 mParticles = new Particle[PARTICLECOUNT]; 12 13 // setup the random number generator 14 Random gen = new Random(System.currentTimeMillis()); 15 // loop through all the particles and create new instances of each one 16 for (int i=0; i < PARTICLECOUNT; i++) { 17 mParticles[i] = new Particle(gen.nextFloat(), gen.nextFloat(), gen.nextFloat()); 18 } 19 20 //三角形のサイズを決定 21 // a simple triangle, kinda like this ^ 22 float[] coords = { 23 -0.4f,0.0f,0.0f, //左 24 0.4f,0.0f,0.0f, //右 25 0.0f,0.0f,0.4f}; //上 26 short[] icoords = {0,1,2}; 27 28 mVertexBuffer = makeFloatBuffer(coords); 29 mIndexBuffer = makeShortBuffer(icoords); 30 } 31 32 // used to make native order float buffers 33 private FloatBuffer makeFloatBuffer(float[] arr) { 34 ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4); 35 bb.order(ByteOrder.nativeOrder()); 36 FloatBuffer fb = bb.asFloatBuffer(); 37 fb.put(arr); 38 fb.position(0); 39 return fb; 40 } 41 42 // used to make native order short buffers 43 private ShortBuffer makeShortBuffer(short[] arr) { 44 ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4); 45 bb.order(ByteOrder.nativeOrder()); 46 ShortBuffer ib = bb.asShortBuffer(); 47 ib.put(arr); 48 ib.position(0); 49 return ib; 50 } 51 52 public void draw(GL10 gl) { 53 //頂点配列を定義。3は3次元。 54 gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer); 55 //パーティクルの色の指定。背景ではない。 56 gl.glColor4f(1f, 1f, 1f, 1f); 57 for (int i = 0; i < PARTICLECOUNT; i++) { 58 gl.glPushMatrix(); 59 gl.glTranslatef(mParticles[i].x, mParticles[i].y, mParticles[i].z); 60 //GL_TRIANGLES3角形と指定してる。?? 61 gl.glDrawElements(GL10.GL_TRIANGLES, 3, GL10.GL_UNSIGNED_SHORT, mIndexBuffer); 62 gl.glPopMatrix(); 63 } 64 } 65 66 // simply have the particles fall at a hard coded gravity rate 67 // and when they hit zero, bump them back up to a z of 1.0f 68 public void update() { 69 for (int i = 0; i < PARTICLECOUNT; i++) { 70 mParticles[i].z = mParticles[i].z - 0.01f; //落下速度 71 if (mParticles[i].z < -6.0f) { //落下位置。下位 72 mParticles[i].z = 1.5f; //落下の最初の位置 73 } 74 } 75 } 76}

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

自己解決

mParticles[i].x の変更

投稿2015/04/10 14:06

kaaa

総合スコア29

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

OpenGL ES

携帯電話のような組込み機器のためにデザインされたOpenGLのサブセットです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。