LoginSignup
0
0

More than 3 years have passed since last update.

bowling の physical simulation で Springhead を使ってみた C++ (2)

Last updated at Posted at 2020-06-24

前回 の続き。

  • PHScene に PHSolid を作成すると physical simulation 対象になるが debug=true のときに表示される。 wireframe と solid 表示を切り替えたり色を付けたり(SetWireMaterial() SetSolidMaterial() GRRenderBaseIf::{reserved_color_name})が可能。 (簡単なデモだとこれでも充分だが texture が貼れないのと debug=false で PHScene が表示されない。)
  • debug=false で表示させるには GRMesh 等で vertices に color を付けるか texture (texCoords と texname) を設定する必要がある。
  • GRMesh を表示させるには GRScene で GRFrame を作成し(GRScene の world に追加。 parent=NULL (省略時) または parent=grScene->GetWorld() ちなみに world は GRScene の最初の Child として造られている。)、さらに FWSdk の Scene(N) で予め作成した FWObject に PHSolid と GRFrame を bind すると physical simulation と連動してくれる。

test_Springhead_bowling_4scenes_20200624.gif

ソース途中経過

(GRMeshDesc で meshd.faces の指定を間違うとコンパイルは通っても実行時に落ちるのはもちろんだが、落ちる場所が不定。new (alloc) で落ちたり delete で落ちたり。結果的に原因は違っていたが meshd.vertices 等の頂点数や GRFrame が多過ぎるのかと思って嵌った。バグを追うのが大変なので meshd の中身をいつでも表示出来る関数を用意した。)

今後の目標

  • アプローチからボール投球とARATの制御
  • レンコンでボールの軌道を変化させる
  • ボールの材質
  • ローリングトラックやボール軌道の表示
  • ボール通過でレンコンを変化させる
  • ボール回収とリターンラック

まだまだ続く

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0