Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
16 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26154
次のページ(過去)
返信[46]
親投稿
おちゃめ ochame_nako
本当の初心者は買ってみたものの真っ黒の画面(コンソール画面)に唖然して先に進めない人だと私は思っています。 多くの人がRPGツクールのような「ゲームを作れるソフト」と思って買っているはずです。 そして、TOP MENUでどれを選択したら何ができるかも分からない状態(コンソール画面からTOP MENUに戻る方法も分からない)と思います。 それらを理解してようやくプログラムとなるわけですが、プログラムって何なのかは初心者には全く分かりません。EDITモードとDIRECTモードの使い方もまともに分からないでしょう。 その関門を突破できてようやくプログラミングという道が始まるわけですが、ここからが本当の始まりです。しかし、この時点で挫折している人も多数いると思います。
0そうだね
プレイ済み
返信[43]
親投稿
おちゃめ ochame_nako
ちなみにB==○という形で斜め移動は可能で8通りの判定を行えば誰でも簡単に行えます。 ANDを使った方法だと4通りの判定で済むのですが、それがなぜかが分からない状態だと結局使いこなすことはできないと私は思います。 使い方だけを提示して「あとは試行錯誤で使いこなせるようになってください」というのもアリですけど・・・。
0そうだね
プレイ済み
返信[42]
親投稿
おちゃめ ochame_nako
このように問題点をわざと出しておいてそれに対応するためにはこうすれば良いというのは定番的な方法ですが、効果的な方法だと私は思います。 スムーズに特に問題点が出ないようにする書き方と比べてどうしても長くなってしまいがちです。これは理解を深めたいのか、こういう使い方があるという提示だけしたいのかで判断すれば良いでしょう。使い方を提示するだけであれば問題提起は不要です。 これはどちらが正解になるというものではなく講座を書く人の考え方次第だと思います。
0そうだね
プレイ済み
返信[41]
親投稿
おちゃめ ochame_nako
分かりにくい使い方、難しい使い方はそれを行うだけのメリットが必要です。 「B==#UP」のような形で問題ないならばわざわざよく分からない「B AND #UP」を使う必要性を感じないです。必要性がないものは理解をしにくくなります。 したがって、講座を書く場合には半ば強引でも必要性を押し出すことも重要だと私は思います。 私のプチコン3号入門講座でもスタートはB==○からでしたが、それだとAボタンとの同時押しを判定するのが困難であるということからB AND ○へと発展させています。 また、入門講座ではBUTTON(2)の問題点を理解してもらうためにサンプルプログラムはスプライトではなくコンソールを用いて「移動が速すぎるからVSYNC 3を入れる」という手法によってBUTTON(2)はVSYNC 1(もしくはWAIT 1)でないと正常動作しないというのを理解しやすくしています。
1そうだね
プレイ済み
返信[36]
親投稿
おちゃめ ochame_nako
プログラミングができるようになるためには命令や演算子の使い方を覚えるだけではダメでnobuさんが書かれているようにその組み合わせが重要になってきます。 その組み合わせ方は作りたいものによって変わってくる(しかも、正解がない)のですが、命令の使い方に主眼を置くかその組み合わせに主眼を置くかで説明の仕方も変わってくるため講座を書くのは難しいですよね。 ゲームを作るならばさらにゲームを作るためのスキルが必要でゲームのジャンルによって必要なスキルが変わってくるため「講座」といっても書き方は無限大です。
0そうだね
プレイ済み
返信[35]
親投稿
おちゃめ ochame_nako
先日も書いたようにB AND #Aというのはヘルプでもろくに記述されてない特殊な使い方なんですよね。 IFでヘルプを見てみると「(条件1 AND 条件2)同時に満たす」と記述されています。 これから推測すればIF B AND #A THEN ~というのはBと#Aを同時に満たす場合となり意味不明な条件になってしまいます。 次にANDでヘルプを見てみると「変数=数値1 AND 数値2」となっていて数値1と数値2の論理積(ビット演算)となっています。この時点で初心者には意味不明ですが、数値1の説明が「ビット列1」、数値2の説明が「ビット列2」になっているし使用例が「A=200 AND &HE7」と記述されているし、さらに意味不明になっています。 このヘルプのみでB AND #Aの意味を理解できる初心者がいたらその人は天才です。
0そうだね
プレイ済み
返信[32]
親投稿
おちゃめ ochame_nako
そひさんへ 実はANDはビット演算を行う演算子ですが、演算子というからには何らかの計算を行うものです。 つまり、計算パターンさえ理解すれば足し算や掛け算を理解するくらい簡単なものです。 とはいえ、ANDの場合は2進数の理解が必要なのでハードルが高くなっています。 しかし、実はボタン判定においては2進数の理解は不要なのです。 以前Miiverseで解説したこちらのページをご覧ください。(さらに詳しくはプチコン3号入門講座で解説) https://miiverse.nintendo.net/posts/AYMHAAACAAADVHjrpjduHA この方法ならばANDの仕組みを(2進数を使わず)「定数リテラルのまま」で説明が可能になります。
0そうだね
プレイ済み
返信[31]
親投稿
おちゃめ ochame_nako
B AND #Aの動きをきちんと理解できるようになったら特定のボタンを押して特定のボタンを押してない場合の条件式も簡単に記述できます。 4方向をすべてANDを使って記述すると自動的に8方向移動になってしまいますが、これを4方向に抑えたいという場合であっても簡単に記述できるのでプログラミングが楽しくなります。 とはいえ、すべてを説明しようと思ったらすごく長くなるのでnobuさんが不要と思った部分を端折るのは何ら問題はないと思います。 私はMiiverseで初心者の質問をたくさん見てきましたが、大きく分けて3つあります。 (1)ヘルプを見ることができず、簡単な命令さえ使うことができない人 (2)ヘルプを見ても使い方がよく分からないで悩んでいる人 (3)ヘルプに載ってない部分で悩んでいる人 実は今回のANDは(2)と(3)なのです。これをどうするかはnobuさん次第です。
0そうだね
プレイ済み
返信[26]
親投稿
おちゃめ ochame_nako
実は2進数→16進数や16進数→2進数は簡単(16通り覚えればいいので九九を覚えるよりも簡単)ですが、10進数→2進数や2進数→10進数は計算する以外にないため計算方法から覚えなくてはなりません。まぁBIN$関数が加わったお陰でその計算方法を説明しなくてもBIN$を使えば良いのでビット演算の説明はしやすくなりましたね。 ちなみにボタン判定はすべて B AND ○ を使用しているのですが、すでに行っている B==○ との違いの説明は行うのでしょうか?今まで B==○ だったのにいきなり B AND ○ に変わったら「おまじない」でも戸惑いそうです。 プログラムに正解がないのと同じく講座(説明の方法)にも正解はありません。ただし、プログラムがどのようなものを作りたいのかを考えた上でそれに沿ったプログラムを作るのと同じく講座もその自分が考えたものに沿っていればそれで正解だと思います。
0そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
せっかく分かりやすい定数リテラルで記述しても2進数に変換して説明するとなると本末転倒であり、初心者に理解してもらうため私は「2進数を使わない(ボタン入力限定)ビット演算の説明」を行っています。 ちなみに私のプチコン3号入門講座の基本的な記述方法だと「左上の判定」はIF (B AND #LEFT+#UP)=#LEFT+#UP THEN ~となります。これはIF B==#LEFT+#UP THEN ~から簡単に移行できるため非常に分かりやすいと思います。(2進数を説明しなくてもB AND #LEFT+#UPで左と上のボタンの情報を取り出せるということさえ分かればいい) 中級者以上であればIF B AND #LEFT && B AND #UP THEN ~の方が良いと思いがちですが慣れてない初心者がIF B==#LEFT+#UP THEN ~からこの形へと移行させるのは難しいと私は思います。
0そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
ボタン入力判定の鍵ともいえるIF B AND ○ THEN ~という記述ですが、この時点でしっかり説明しておくのか、軽く流すだけ(後で詳しく説明も無し)でいいのか、後で十分に説明するのかによってこの回での説明方法は全く変わると思います。 IF B==#A THEN ~とIF B AND #A THEN ~との対比だと「==とANDとの違い」と勘違いしてしまいがち(実際にそういう初心者も多い)でそれを無くすためには「falseとtrue(論理演算)」と「ビット演算(つまり、2進数の演算)」の知識が必要不可欠になってしまいます。それを初心者に分かるように順序よく説明しようとすれば必然的に私の講座くらいの文章量になってしまいます。 簡潔、かつ、(初心者に分かるように)分かりやすく説明するのはすごく難しいことなのです。
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
ちなみに私の「プチコン3号入門講座」ではIF B==#A THEN ~からIF B AND #A THEN ~に移行するまで本が1冊書けるくらいの文字数を費やしています。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
よく見かけるIF B AND #A THEN ~というのは特殊は書き方であり実は応用的な記述なので初心者が理解できるにはある程度の段階を踏んでないと難しいです。 その説明ができないならば「B AND #A」で(他のボタンが押されていても)Aボタンが押されたかどうかの判定が可能なおまじないみたいなものと丸暗記してもらうのも1つの手です。ただし、おまじない(丸暗記)にしてしまった時点でそれからの発展は無くなる両刃の剣です。(後で詳しく説明する予定というのであれば何ら問題はないですが) それと同様にWHILE 1~WENDで無限ループになるのも特殊な書き方であるもののこちらは丸暗記でも大して問題にはなりません。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
あと自分が描きやすいペンを見つけることも重要ですね。 3DSのタッチパネルは感圧式なので圧力を加えられればどんなものでもタッチペンになります。 形状、材質などいろいろ試してみると良いでしょう。
1そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
鼻・・ではなく花を摘むなら問題ありません
0そうだね
プレイ済み
返信[20]
親投稿
おちゃめ ochame_nako
「変数名の決め方」とか「変数名のルール」という感じですね。(ルールの範囲内ならば自分で自由決められるということと自分で分かりやすいものにするのがベターということも記述してあると良さそう) 誤解させないためには「変数」ではなく「変数名」にすると良いかもしれません。
0そうだね
プレイ済み
返信[39]
親投稿
おちゃめ ochame_nako
nobuさんらしくて良いネーミングだと思います。 初心者に共感を得られるような講座になるのではないかと期待しています。 私の「プチコン3号入門講座」はプチコン初心者も対象にしていますが、あくまで中級者を目指した講座であるため共感よりも知識を詰め込んだものになっています。 これは「知識編」であり「実践編」をまた別に作るつもりでありためです。 実践編は初代プチコン/mkII用に書いたプチコンゲーム制作講座に近いものになりゲーム制作の方法について記述したものになる予定です。(プログラミングスキル≠ゲーム制作スキルであるため)
0そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
そういう意味ではコンソールはさらっと流してスプライトに主眼を置くnobuさんの講座は個人的には良いと思います。 コンソールでは元々キャラを動かすということは向いておらずキャラを描いて動かして元の位置のキャラを消すという動作が必要不可欠となります。その際にはちゃんと消さないと残像が残ったりするためそれが初心者泣かせとなります。(しかも、覚えたことがスプライトへと発展させにくい) スプライトはキャラを動かすことを前提に作られていますのでその辺は全く考える必要はなく表示座標を変えるだけでキャラを動かすことができるため初心者向きです。 もちろん、最初に覚えることはコンソールよりは多いですが、自分で描いたキャラ(ドット絵)が動かせるというのは初心者にとっても楽しく感じるのではないかと思います。(もちろん、最初はデフォ画像からでも問題ないです)
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
ちなみにコンソールで低fps動作のゲーム(普通にプレイできるレベルまで遅くしたゲーム)を作る際にボタン入力に対してきちんと反応するようにはこんな感じの工夫が必要になります。 もちろん、こんな工夫をしなくてもWAIT 8で7.5fpsのゲームとなるわけですが、BUTTON(1)、BUTTON(2)では押してもほとんと反応しないしないし、引数無しのBUTTON()でも反応しにくいため初心者が改善したいと感じたら一気にハードルが高くなってしまいます。
1そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
こういちさんへ 昔(80年代)のBASICで作られたゲームではコンソールが主流でしたが、これはグラフィック表示が遅かったため(BASICでスプライトが扱える機種が限られていた)コンソール以外は動作面で厳しかったのが理由です。 そのためコンソールで「速すぎる」ということもなく初心者にとってはコンソールで作るゲームが入門用としてポピュラーでしたが、プチコン3号では当時の機種と比べて数100倍~数1000倍高速であるためコンソールでは逆に難しくなってしまいました。(特にプチコン3号ではボタン入力が1フレーム単位の更新となっているためWAITで遅くするのは不具合が発生しやすい)
0そうだね
プレイ済み