コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
F-4 Phantom ◆2Fao.QP8H0Nw
2020/11/3 1:29
協力
デバッグ依頼
製作中のF-4戦闘機シムのデバッグ依頼です。
姿勢儀をうまく動かせません。
SPの54番が姿勢儀のスプライトで、SPROT 54,rollになるようにしたいのと、
出来ればPitchにあわせて姿勢儀が動くようにするか、その方法を教えて欲しいです。
お願いします。
公開キー SBD3CN4V
PHYSICS_ENGINEを実行してください

何か質問があればここに下さい

コメント

アバター
F-4 Phantom 2020/11/3 1:30 ◆2Fao.QP8H0Nw
下画面真ん中の上の方にあるのが姿勢儀です。
アバター
ugly777 2020/11/3 16:19 ◆B7lOIJDWuOqi
解決しました。
SYS.LG内のATTITUDE命令内の
SPROT 54,roll
の部分を、
SPROT 54,VAR("0:roll")
に変えれば直ります。PHYSICS_ENGINE内の
SPROT 54,Roll
で一応回転はできていますが、
その直後のPANEL命令が呼び出すATTITUDE命令が
スロット0のRollではなく
スロット1のroll(常に0)で回転させていたからです。
というか、SYS.LGで描画しているので、
PHYSICS_ENGINEで描画する必要は無いように思えます。

ちなみに、DEF内のみで使う変数は
DEF内で定義しておいた方が良いですよ。
でなければ、その変数がグローバル変数になり、
色々面倒な事になるからです。
そして、Rollの値の表示がBack_Angleの表示で見えませんが、
Back_Angleの表示の直前の
LOCATE 0,10

LOCATE 0,11
にすれば直ります。
アバター
RF-4E 2020/11/3 17:31 ◆2Fao.QP8H0Nw
ありがとうございます!
DEF内の命令はDEF中で宣言しないとグローバル変数にならないんですね
アバター
ugly777 2020/11/3 19:00 ◆B7lOIJDWuOqi
なんとなく誤解を与えてしまっていそうなので改めて説明しますが、
DEF内の変数はDEF中で宣言するとローカル変数になります。
アバター
Header 2020/11/3 20:43 ◆BDuG8hoYvRQ2
別スロットのDEFで使いたい変数が宣言されているスロットの変数を参照する場合、
Var("変数が宣言されているスロット:変数名")
とする必要があります。
またこれはDEFに限らず、別スロットで参照するにも利用できます。
悪い例)
スロット0
Var wshshell = 10
Load"PRG1:A.LG",FALSE
USE 1
print getVar()
Stop

スロット1(a.lg)
DEF getVar()
Return wshshell
End

これだと0が表示されます。

いい例)
スロット0
Var wshshell = 10
Load"PRG1:A.LG",FALSE
USE 1
print getVar()
Stop

スロット1(a.lg)
DEF getVar()
Return var("0:wshshell")
End
これだと、10が返ります。

こんな感じで参照します。
説明下手でごめんなさい。
アバター
F-4 Phantom 2020/11/6 17:39 ◆2Fao.QP8H0Nw
Varは宣言じゃなくて、参照っていう事ですね。
ありがとうございます!

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -