Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
138 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58184
次のページ(過去)
返信[4]
親投稿
22〜24行目はキャラのアニメーションのための処理です。移動自体は移動後止まりますがキャラクタのアニメーションは勝手には止まりません。なのでSPCHKで移動が終わっているかをチェック(移動だけをチェックする為にAND #CHKXYする)して移動が終わっていたらキャラのアニメも止めています。 ちなみにSPUSED(0)がないとSPSET前(初回タッチまでの間)はエラーになってしまうので、ちゃんとSPUSEDが使われているか調べてからSPCHKをするようにしています。 最後にSPANIMを止める方法ですが、SPANIMは他の命令でアニメーションに関係あるパラメータを変更するとアニメの方が止まるという特徴があります。なのでこれをつかって、SPCHRでSPCHR(0)である今現在の自分のキャラ番号を指定することで、絵を変更せずにSPANIMだけを止める(無効に)しています。
0そうだね
プレイ済み
返信[3]
親投稿
せっかくなのでかるくだけ説明しておきますね。移動させるだけならもっとシンプルですがアニメーションもしてるんでその分複雑になっちゃってます。 11行目でタッチした位置を元にその場所までの移動量(AX,AY)と距離(L)を求めています。この移動量と距離はアニメーションのキャラと速度を求めるために利用しています。この辺の計算は11〜13行目で行っていますが、慣れないとこっちの方がわかりにくく感じるかもしれませんね。 17行目で移動させるときには距離(L)をスピードで割ることで実際の移動時間を求めています。こうしないとどこに移動するにも同じ時間になるので遠くほど早く移動することになっちゃうからです。距離から計算すれば移動速度を正確に出来ます。
0そうだね
プレイ済み
返信[1]
親投稿
弾幕だともっとたくさんのスプライトが必要になるのでは?
1そうだね
プレイ済み
返信[3]
親投稿
スプライトの移動はSPOFSなのです。
3そうだね
プレイ済み
返信[1]
親投稿
とりあえず例を載せるのでわからないところを質問してくださいな。
1そうだね
プレイ済み
返信[5]
親投稿
このソースは動いているキャラにぶつかるとそのキャラは止まってしまって二度と動きません。(位置補正でSPANIMの効果が切れるので) その際にまた動かすなどしたい場合は自分で応用してください。 あと上記ソースについての質問には答えますが、それ以上はほとんど応用なので、自分で考えて利用、改善などをしてくれればと思っています。 頑張ってください!
0そうだね
プレイ済み
返信[4]
親投稿
一例だけ載せます。 ヒントにはなるかと思いますが、そのままは使えないと思うので理解して改良してください!
0そうだね
プレイ済み
返信[6]
親投稿
条件付き(FORCESAVE変数以外にも起動したプログラムプロジェクトのみ&デフォルトプロジェクトでは使えない等、他にも色々)での確認無しならあっても良いような気がしますが、どちらにしてもスマイルブームと任天堂の方針にもよるんで希望は出せてもなかなか実現はしないかもしれませんねぇ…
0そうだね
プレイ済み
返信[2]
親投稿
SPHITSPだと接触時の判定なので、SPHITRCなので移動前に移動先を調べてぶつかるなら移動しないなどとした方がいいかもです。 ただNPCがSPANIMで移動しているならNPCの方からぶつかってきて動けなくなる可能性もあるんで、接触するならNPCも一時的に止めるみたいな感じもやらないとうまくいかないかもしれませんね。
0そうだね
プレイ済み
返信[5]
親投稿
ツールを使ってもDATAでやっても当たり判定などはBGGETでやるのは変わらないですよ。ツールはあくまでBG画面に配置するのを補助してくれているだけなので、それ以外はなにで表示したとしても同じです。(なので壁などもやり方は変わらない) ただツールを使うのとDATAで読み込むののどっちがいいのかはなかなか難しい問題というかケースバイケースですね。複雑なマップ(とくに使用マップキャラが多い)の場合はツールの方が楽ですし便利です。ただツールはどうしてもプログラムとデータファイルの2つに分かれる(のでプロジェクト単位でないと公開出来ない)感じになりますし、データ容量も大きくなりがちなので、その辺は微妙だったりもします。(容量に関してはマップデータを圧縮すればいいだけの話でもあるんですが…) マップツールを使った作品は多くないみたいなので逆に使ってみて欲しいところもあるんですけどね〜
0そうだね
プレイ済み
返信[7]
親投稿
WAITは処理を止める意図で使いますがVSYNCは処理のタイミングを調整する意図で使うイメージです。なのでメインループなのかのタイミング調整の場合はVSYNCが適している感じですね。 色んな命令(SPANIM含む)は適材適所に利用すると有効に活用できるので毛嫌いせずにいずれ使ってみるといいかなとは思います。ただその前に配列含め、わからないところを少しずつ減らしていくといいと思いますね。(その時は逆にSPANIMを使いたくなるかもしれないし) プログラムはもともと地道なものですし頑張ってください〜。
1そうだね
プレイ済み
返信[3]
親投稿
WAITを使うとどうしてもそこで処理が中断されてしまいますからね〜。WAITを使っていても動くのはSPANIMぐらいだと思った方がいいです。なのでSPANMに頼らないのであればメインループによる擬似マルチタスク(分散処理)って感じになるでしょうね。 あとは同じようなものをたくさん動かす場合は配列を使うと便利です。またスプライトに限っては複数出せるので、SPFUNCやSPVARをうまく使うと処理をまとめやすくなります。 とまあいろいろありますが、結局は自分でコマ送り的に処理する事になると思いますんで頑張ってください〜。
1そうだね
プレイ済み
返信[1]
親投稿
同時処理をしたいならまずWAITは出来るだけ使わないように心がけましょう。ただメインループは必要なのでVSYNCを使うといいです。 あとは基本メインループで1ステップずつバラバラに実行する擬似マルチタスクに近い感じの処理を書くことになりますね。 ただSPANIM命令は実行すると自動的(平行して)に処理される特別な命令なので、場合によってはこれをうまく活用すると少し楽が出来るかもしれません。 またSPFUNCをつかってスプライトの処理を実行させるのも手ですが、こっちの方lは慣れないと難しいかもしれないので、まずは上記の2点で同時処理を実現する練習をする感じでしょうね〜
1そうだね
プレイ済み
返信[3]
親投稿
プログラムが終わると出るのでメインループなどでプログラムが終わらないようにしましょう。
1そうだね
プレイ済み
返信[1]
親投稿
自分の座標を元にBGGETでBGキャラ番号を取得して、その値が特定のBGかどうかで判定すれば出来るはずですよ。
1そうだね
プレイ済み
返信[3]
親投稿
ちょっとだけプログラムいじってみました。 XK4NNDK1 良ければ参考にしてみてください。
0そうだね
プレイ済み
返信[9]
親投稿
割ろうとして割ったならむしろ目的達成では…
7そうだね
プレイ済み
返信[1]
親投稿
プログラムが得意じゃないのかもしれませんが、前にも書いたようにプログラム面でもっとこうしたらいいのになぁ、と言うのが目についてしまって…。 あと対応する言葉がないときもランダムでセリフを返す(とりあえずは「何言ってるのかわからない」みたいな固定でもいいけど)とかあると良いですね。 それと必要なファイルが一つならフォルダごとじゃなくてファイル単体を公開する感じでもいいかも。そしたら最新がどれか迷うこともないし…。
0そうだね
プレイ済み
返信[1]
親投稿
ちょっと前のトピックで選択肢の作り方ってのがあったから、そこが参考になるかも?
1そうだね
プレイ済み
返信[1]
親投稿
ちょっと思ったこと。 単語辞書を別テキストファイル化して読み込むといいかも。 読み上げ用のテキストは答えと変わらない場合は省略可能にするといいかも。 他にもあるけど、とりあえず2点でした。
1そうだね
プレイ済み