Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

前回 の続き。

  • 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の制御
  • レンコンでボールの軌道を変化させる
  • ボールの材質
  • ローリングトラックやボール軌道の表示
  • ボール通過でレンコンを変化させる
  • ボール回収とリターンラック

まだまだ続く

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away