Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
128 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48154
次のページ(過去)
返信[9]
親投稿
おちゃめ ochame_nako
詳しくはこちらのトピックスに書きましたので参考にしてみてください。 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0fxyAvp3g
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
今回はATANを使って角度を元に求めましたが4方向であれば下記のリストのようにSX、SYの大小比較だけで向きを求めることも可能です。(こっちの方が簡単!) 結果が同じであっても様々なやり方があります。今回の方法だけが正解というわけではなく正解は無数にあるのでぜひ色々試してみてください。 またSPANIMの速度は移動速度に関係なく一定となっていますが、移動が速い時は駆け足で遅い時はゆっくり歩くということも可能なので興味がある人は挑戦してみると良いかもしれません。 キャラを自分で自由に動かせるようになるとゲームを作っていて楽しくなります。 初心者の方はまずは自分の思い通りにキャラを動かせるという快感を味わってみてください。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
ここまで来たら完成まであと一歩です。 スライドパッドでSPANIMでアニメーションしながら移動する場合もボタンと同じように押してない時は静止、向きが変わった場合や静止している状態から動き出した瞬間はSPANIMを実行で何ら変わりません。 ということでできたのがこのサンプルプログラムです。 このDの値がスライドパッドが押されている時は0、押されてない時は1になり、PDが1フレーム前の情報となります。 それさえ分かればボタンで判定するのと何ら変わらないと思います。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
ここで、上下左右90度に分割して考えてみましょう。 上は315度~359度、もしくは0度~44度、右は45度~134度、下は135度~224度、左は225度~31 4度となります。 上方向がちょうど0度の境目にまたがっているため分かりづらいというのであればA=(DEG(ATAN (SX,SY))+405)MOD 360とすれば良いです。 こうすれば上方向の左端を基準にするため0~89、90~179、180~269、270~359でキレイに90の倍数を境にして上、 右、下、左の4分割が可能になります。 キレイに分割ができるということは判定を単純化できる(簡単に判定ができる)というメリットがあります。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
スライドパッドで取得できるY座標は正負が画面座標と正負が反転したものになっているためこれによってスライドパッドの向きが時計と同じように12時を基準にした時計回りになります。(言い換えればSPROTと連動が可能になる) つまり、スライドパッドで角度を求める場合のみ「ATANのXとYは通常とは逆」と覚えておけば初心者でも容易に解決が可能ということです。 A=DEG(ATAN(SX,SY))でSPROTと連動が可能と書きましたが実は取得できる値は-180度~179度という範囲です。 これでは分かりにくいから0~359度にしたいというのであればA=(DEG(ATAN(SX,SY))+360)MOD 360で可能です。 これによって12時の方向が0度で3時方向が90度、6時方向が180度、9時方向が270度になります。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
ただし、この角度の基準点は右(時計の3時方向)であり、角度は反時計回りに増加していきます。 これはスライドパッドの回転の方向とは逆であるためSPROT 0,Aとすればスライドパッドの動きとキャラの向きが連動してないことが分かるでしょう。 ここではあくまでSPCHRで向きを変えるためSPROTは使わないのですが、スライドパッドの向きど角度が連動していないというのはいろいろな問題点が出てくる可能性があります。 これは90度補正して角度を正負反転してスライドパッドを入力していない場合の判定を行えば問題解決できるとはいえ実はもっと簡単に解決できる方法があるのです。 それはATANのXとYの値を入れ替えることです。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
これを踏まえてスライドパッドの場合を考えてみましょう。 そのためにはスライドパッドで「指定の向きにキャラが向く」というプログラムを作れる必要があります。 つまり、360度あらゆる方向が取得可能なスライドパッドで4方向に変換する必要があるというわけです。 これにはいろいろな方法がありますが、最も確実な方法は角度で考えるということです。 角度を求めるにはATANを使います。 STICK OUT SX,SY:A=DEG(ATAN(SY,SX))とすればAにスライドパッドの角度が「ラジアン」ではなく「度」で入ります。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
静止しているのは十字ボタンを押してない時なのでB==0となります。これは!Bと記述が可能です。 IF !B THEN SPCHR 0,C でその方向のアニメーションを停止が可能になります。 向きが変わるのはC!=PCでこれはC-PCと記述が可能です。(後者の記述はC-PC!=0の「!=0」を省略したもの) あとはボタンを押した瞬間を判定すれば良いです。 これはBUTTON(2)を使っても良いのですが、1フレーム前のBの情報が分かっているため「現在ボタンを押していて前のフレームには押してない」ならば「押した瞬間」と分かります。 したがって、IF C-PC || (!PB && B) THEN SPANIM(以下略)とすれば良いのです。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
SPANIMで移動しながらアニメーションさせる場合に重要な部分は次の2つです。 「SPANIMはやSPSTOPやSPCHRなどを使って停止できる」ということとSPANIM最中にSPANIMを実行すると1コマ目からまたアニメが開始する(毎フレームSPANIMを実行していたら1コマ目で静止する)ということです。 したがって、SPANIMはアニメーションさせたい最初のボタン入力の時点で実行してボタン入力の無い場合は静止するということが必要になるわけです。 つまり、「キャラが向いている方向が変わる瞬間」「静止状態から動き出す瞬間」にSPANIMを実行すれば良いわけです。 この十字ボタンによるサンプルプログラムでは変数Cが現在のキャラ(向いている方向)、PCが1フレーム前のCの情報、Bが十字ボタンのボタン情報、PBが1フレーム前のBの情報です。 この4つの変数ですべての状況を判断が可能です。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
先日SPANIMを満足に使うことができない初心者のためにSPANIM2命令を作りました。 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0fsz6Tuqg この命令を使えば書式が簡単になる上にアニメーションをさせるのも容易になるため初心者にぜひ使って欲しいもののSPANIMも最初のとっつきの悪さを乗り越えればそんなに難しいことはないため今回は自作のSPANIM2命令ではなく標準のSPANIM命令を使っています。 まず最初に十字ボタンを使い「移動しながらアニメーションさせる」というサンプルプログラム」です。
0そうだね
プレイ済み
プレイ日記
おちゃめ ochame_nako
SPANIMをまだ使いこなせない初心者に贈る「十字ボタンやスライドパッドを使ってSPANIMでアニメーションしながら自由な方向に移動できる」というサンプルプログラムです。 初心者の方はぜひ参考にしてみてください。
17そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
スライドパッドであれば360度の向きを何らかの方法で4方向に変換する必要があります。 これはATANで角度を取得してそれを90度ごとに分けて上下左右に変換するという方法で可能です。 ATANが難しければSTICK OUT SX,SYのSX、SYだけを使って求める方法もあります。 まずは、アニメーションはさせずに「スライドパッドの向きにキャラを4方向に向かせる」というだけのプログラムを作ってみてください。 それができれば、向きが変わった場合にSPANIMを実行するという処理を加えればよいだけです。 説明すると長くなるし他に同等の悩みを持っている初心者も多いと考えてあとで別トピックスを立ててサンプルプログラム付きの解説を書いてみます。
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
ver.0.5.3に更新しました。【 QDAJJXR3 】 ・描画色が保護色の際は分かりやすくするためアイコンを表示しました。 ・上画面用のLボタンやRボタンを押したあとの機能説明を追加しました。 なお、アップロード数がゴールド会員の上限である100に達したので今後は古いバージョンは随時削除していきます。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
「キャラの向き」で判定すれば十字ボタンであってもスライドパッドであっても同じように判定が可能であるためスライドパッドで自由な方向に動かしつつSPANIMでアニメーションするということも難しくありません。 もちろん、これはタッチで移動する場合でも変わりません。 ジャイロセンサーやモーションセンサーを使っても移動は可能です。 自分のゲームに適した入力方法で自由に移動できるプログラムを作れるようになるとゲーム作りがさらに楽しくなりますよ。
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
人気で言えばすうさんの「Pics Limited」、クッキーさんの「K2K Paint」がトップ2ですね。 前者はリアルな絵、絵画調の絵を描くのに向いていて後者は漫画やアニメのような絵を描くのに向いています。 これ以外にも良いものはたくさんあるので「プチコンでイラストカコーゼ」で紹介されているプログラム等を実際に使ってみて自分に合うものを使うのがベターだと思います。 私は自作の「SIMPLE PAINT for 3DS」がベターと感じています。 自分が欲しいものは自分で作るのが一番ですね。 これはプチコンならではだと思います。
0そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
これを踏まえてでんぺんさんのプログラムを見るとDの値はループの最初の部分でD=0となっています。そして、十字ボタン入力をすることでキャラの向きに対応する定義番号がDに入ります。 SPANIMを実行するのはD!=NDかつD!=0の場合となっています。 D!=NDとなるのはキャラの方向が変わる瞬間もしくは十字ボタンを押した瞬間もしくは離した瞬間です。 D!=0となるのは十字ボタンを押している時なので十字ボタンを押した瞬間もしくはキャラの向きが変わる瞬間にSPANIMを実行します。 そして、停止するのはD!=NDかつD==0の時なので十字ボタンを離した瞬間となります。 というわけで、ちゃんとすべての場合を網羅していてなおかつ合理的なプログラムなのでサンプルとしては良い感じですね。
1そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
SPANIMで自在にアニメーションさせる場合に重要な部分は2つです。 SPANIMはSPCHRなどを使って停止できるということとSPANIM最中にSPANIMを実行すると1コマ目からまたアニメが開始する(毎フレームSPANIMを実行していたら1コマ目で静止する)ということです。 したがって、SPANIMはアニメーションさせたい最初のボタン入力の時点で実行してボタン入力の無い場合は静止するということが必要になるわけです。 つまり、「キャラが向いている方向が変わる瞬間」「静止状態から動き出す瞬間」にSPANIMを実行すれば良いわけです。 キャラの向きが変わった場合だけ(後者の条件が不足している場合)だとは右向きで移動→静止→右向きで移動というのができなくなってしまいます。
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
nobuさんへ すでに解決済みとのことですが、でんぺんさんに代わって解説しておきます。 DはDirection(方向)の略、NDはNew DirectionもしくはNext Directionの略だと思います。 キャラの新しい向きを示している変数ですね。 ちなみに古い変数(1フレーム前の情報を保存しておきたい場合)には「Pre」「Before」「Old」などを略して「P」「B」「O」を付けることが多いです。 BUTTON(2)を使わずにボタンを押した瞬間を取得するなど「1フレーム前の情報と比較する」という機会は多いと思います。 そういう場合もこういうパターンを使えば変数名で悩むことはないし後から見ても何の変数かが分からないということも無くなると思います。
1そうだね
プレイ済み
返信[47]
親投稿
おちゃめ ochame_nako
ダイアログ無しでのSAVE機能は大量セーブだけではなく既存のファイルの書き換え(破壊)が容易にできてしまうためなかなか踏み切れないでしょうね。 もしもやるとしたら実行時のファイル名+拡張子TEMPのファイルのみ(実行ファイルがPRG:TESTならばTEST.TEMPが書き換え可能なファイル)のようにかなり制限を持たせる必要があるでしょう。(他のプログラムからもダイアログ無しでの書き換えができないように制限が必要になる)
3そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
プチコン3号のソフト本体は大して容量は必要ありませんが追加データとなるユーザーが作ったプログラムをダウンロードすればそれに応じて大きな容量が必要になります。(1MBが8ブロック) 内蔵されているキャラやグラフィックのみで済ませているソフトであれば小規模なものだと1作品あたり数KB~数10KB程度ですが、自分でキャラなどをさまざまなグラフィックを描いている作品だと数MBに達しています。中には10MBを超える作品もあります。 現時点で公開されている作品は数千作品はあると思うので片っ端からダウンロードしていきたいならばそれなりに大きなSDカードを買っておいた方が良いと思います。(内蔵のSDカードが容量不足になってから買い換えてもOK) 3DS本体は最大32GBまでのSDカードに対応しているので予算があれば最大容量を買っておくと良いでしょう。(MBはKBの1024倍、GBはMBの1024倍)
3そうだね
プレイ済み