プチコン3号 SmileBASIC コミュニティトピックSTiNGER STiNGER89012016/12/06 07:29:05質問SPANIMの発動のタイミングコールバックで、y=20まで移動したらSPANIM発動という処理がどうしても出来ません。 簡単なことじゃないかと思うのだけど・・・?!2そうだね 7返信プレイ済み2017/11/03 17:39:50に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿say sayer.exe2016/12/6 8:2318行目のspofsがいたづらしてる? 17:if y>20 && !spchk(n) then spanim n,8,"@move",0 else spofs n,x,y こうしたら動きました4そうだね プレイ済み2017/11/03 17:39:50に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿otta777 otta777a2016/12/6 10:43SPANIMEでアニメ対象をXY座標で指定した後にSPOFS命令で XY座標の指定を行うとアニメの設定は無効になってしまいますね。 SPCHKの返り値もFALSEになります。 アニメ対象がXY座標以外ならSPOFS命令でXY座標の指定を しても影響は無いようです。 3そうだね プレイ済み2017/11/03 17:39:50に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿みむ*mim hidemimtp2016/12/6 11:16原因は↑の皆様のおしゃる通りだと思います。 私が自分で組むときは動き別にサブルーチンを分けます。 このプログラムの場合だとSPOFSは17行目の上に移動させて、SPANIMしたらその後はSPFUNCの設定内容を消す・・・としたい所ですがSPFUNCにはキャンセル機能がないので、 ~ THEN SPANIM ~:SPFUNC N,"OBJ_DUMMY" とでもして、 DEF OBJ_DUMMY:END ってします。 この場合だけ見ると無駄な処理かもしれませんが、複雑になってくると条件でSPFUNCの飛び先を変えるというのはけっこう便利です。 倒したら爆破アニメをしてから消す(SPCLR)、とかに。4そうだね プレイ済み2017/11/03 17:39:50に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿でんぺん DENPEN2016/12/6 15:09みんなも指摘されているようにSPOFSで位置を指定することでSPANIMがキャンセルされてしまってるのが原因ですね。 このようにSPANIM系は、そのアニメ対象の要素に対しての命令を使う事で上書き(キャンセル)されますが、逆にそれを利用してSPANIMでの動作を止めることも出来ます。SPANIMを止めるにはSPSTOPという命令もありますが、それだとそのスプライトで指定した全てのアニメーションが止まってしまうのと、再度動かしたい時にはSPSTARTをしないといけないこともあるので、僕は途中キャンセルしたい場合は、動作の上書きでの停止がいいんじゃないかと思っています。 とくに僕はキャラクタ変更(I要素)のアニメーションを止めるのに、SPCHRでの上書きを使いますね。1そうだね プレイ済み2017/11/03 17:39:50に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿STiNGER STiNGER89012016/12/8 19:11皆さま、アドバイスありがとうございます。 いろいろ試して見ましたがなかなか思わしい結果が出ず・・・もうしばらく研究してみます。0そうだね プレイ済み2017/11/03 17:39:50に取得