投稿
イーブン rein-2000
ユーザー定義関数/命令の 使い方がわかんないです……… 使えるとかなり便利だと思うので、 使えるようになりたいのですが、 なぜかいつもタイプミスマッチ。 ヘルプを読みながら画面写真のように してみたのですが、 やっぱりだめでした。 誰か教えてください…お願いします。
3そうだね
プレイ済み
返信[1]
親投稿
ゆうたん yu-tan-sama
タイプミスマッチの原因はOUTで指定された引数に値が入っていないから PX,PY両方に値を入れてあげないとダメです あと、その例ならCALL命令を使わなくてもいいんじゃないかなー 命令を配列にしてループで実行するとかなら超有用ですけど 基本的には普通の命令と同じような呼び出し方でいけます
0そうだね
プレイ済み
返信[2]
親投稿
ユーザー定義命令のOUTはあくまで値を返すためのもので、それは関数内で設定してあげないといけないのです。 今だと関数内でPXとPYを使ったり返したりしてますが、それが初期化(設定)されてないのでおかしなことになってます。(ちなみに引数の変数名が関数外と同じでも関数とそれ以外の変数は別々の元のして扱われます) なので、この場合は、引数で受け取ったXとYを初期化に使えば良いので、11行目の位置で、 PX =X:PY=Y とすれば意図した動作になると思いますよ。 また呼び出し側もCALL命令を使わないでも、 P_MOVE PX,PY OUT PX,PY と書くだけで大丈夫です。CALLは呼び出す命令を文字変数で動的に変更するなどの特殊な用途以外ではあまり使わない命令じゃないかなって思います。
0そうだね
プレイ済み
返信[3]
親投稿
イーブン rein-2000
できました! 親切丁寧に教えていただき、 ありがとうございました! さっそく何かに 使ってみようと思います!
3そうだね
プレイ済み
返信[4]
親投稿
最初、迷いますよね 私も何故だー!?としばらく悩みました そしてCALLを使わなきゃいけないのかと思ってたのも一緒です(^^;) DEF FUNC OUT RET 返却値が1つだけなら上の書き方でも RET=FUNC() これで呼べたりするみたいです
0そうだね
プレイ済み