Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
146 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66154
次のページ(過去)
返信[24]
親投稿
おちゃめ ochame_nako
(続き) REPEAT VSYNC UNTIL BUTTON(2)==#AのBUTTUN(2)をBUTTON(3)に変更すれば正常動作する(Aボタンを離すまで待つルーチン)ように思えますが、今度は「DIALOGはAボタンを離した時に確定」なのでその場合に誤動作となってしまいます。 VSYNCがキャンセルされないためにはREPEAT VSYNC UNTIL BUTTON(2)==#Aの直前にもう1つVSYNCを記述すれば解決できますが、それをするくらいならば確実に待ってくれるWAITを使用してREPEAT WAIT UNTIL BUTTON(2)==#Aとすれば良いというのが私の考えです。 初心者に丸覚えで「Aボタン入力待ちルーチン」として教えるのであればこちらのWAITを使用したものをオススメしたいです。 (続く)
1そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
MIKIさんへ 具体的に誤動作する場面でいえば「RUN+Aボタンで実行時」「INPUTやLINPUTでAボタンで入力確定時」がありますが、前者はタイトル画面において、後者はコンソールゲームを作っている場合において初心者がはまりやすい落とし穴と言えます。 これ以外にもAボタンを押した後に「Aボタン入力待ち」がある場合において前回のVSYNCから1フレーム以上経過している場合に誤動作となります。(※「Aボタン入力待ち」が実行されるのと同一フレームでAボタンを押した場合) そのため初心者にREPEAT VSYNC UNTIL BUTTON(2)==#Aという記述を安易にオススメしても改善策にはならない場合があるのです。 (続く)
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
プチコンはMiiverse等で情報を収集してバグ等の敵と戦いながら自分自身のレベルを上げていって自作ゲーム(自作ツール)を作って公開するという冒険(?)をしていくというゲームです。 もちろん、冒険をせずに他の人が作ったものをプレイするだけでもOKなので初心者でも安心です。 レベル1の勇者だと何をしていいのかは分からず右往左往するかもしれませんが、自分でやりたい冒険(作りたいゲームやツール)を見つけて情報収集を行って着実にレベルアップをしていけば良いですよ。 プチコンは自分の発想が尽きない限りは自分がレベルアップするほどできることが増えていきます。まさに可能性は無限大です。(まぁメモリや演算速度は有限なのですが) レベルアップはそれなりに時間がかかるのであせらず頑張ってください。
2そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
だにえるさんへ MAINCNTで代用というのは初代プチコンから良く使われている手法ですね。 実は初代プチコンのVSYNCはmkII以降のWAITに相当する命令でした。 そのため60fpsのプログラム以外を作るのが困難であり、MAINCNTLを使って自前で管理をしていました。 VSYNC 6などのように「1よりも大きな値」を引数に指定しまうとBUTTON(2)等が正常動作したないためmkII以降であってもこの方法は覚えておくと便利な方法といえます。 MILLISECは16m秒を指定した場合には60fps(約16.66fps)との誤差によって稀に誤動作が発生するという点が難点ですが。
2そうだね
プレイ済み
返信[17]
親投稿
おちゃめ ochame_nako
VSYNCはあくまで前回のVSYNCから指定フレームほど待つ命令だから、Aボタン入力待ちループとしてよく使われる REPEAT VSYNC UNTIL BUTTON(2)==#A というのは正常に機能しない場合があるんですよね。 これは誤動作防止のためにはWAITを使うべき場面です。
3そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
個人的にはVARの関数的な要素より(DIMには無い点)よりもWAITとVSYNCの違いを知っている人の方が少ない気がします。
1そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
PRINT(もしくは省略形の「?」)を使用して表示する場合は改行したくない場合は末尾にセミコロンを付ける必要があります。 セミコロンを付けた表示の次の表示で改行したい場合にはPRINT(もしくは?)を引数無しで単独使用すればセミコロンによる結合を解除ができます。
0そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
速いか遅いかは一定回数を繰り返すのに必要な時間を比較すれば簡単に分かります。(FOR~NEXTはカウンタ変数のインクリメント処理がある分だけ遅いけどループ内で別途インクリメントを行うのであればFOR~NEXTの方が速い場合がある) それが体感できる(感覚で分かる)レベルの差か時間を計ってみて初めて分かるレベルの差かは人によるため一定の基準はないと思います。 DIMとVAR、WAITとVSYNCのように「似ているけど動作が異なる部分がある」という命令はプチコン3号には多くあるので違いを知っておくといろいろと便利なこともあります。
4そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
プログラミングより小学校の算数の方が難しいと個人的には思います。 算数の場合は先生が求めている回答が答えられた場合に限り正解である(6×8=48が正解の場合には8×6=48は不正解になる場合もある)のに対してプログラミングは自由であるためです。 プログラミングは自分が思ったように動いているならばどんなやり方でも正解です。 上記のコメントにあるように興味が無い場合は身に付きにくいのですが、「興味はあるけど難しくて思うようにできない」というのであればあせらずじっくりやれば問題ないと思います。 いくら誰でも上達可能といってもすぐに上達するのは無理だし、上達速度は人それぞれであるためです。
1そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
それをまとめるとP=Q:Q=R:R=RND(3)で今回の番号がR、前回がQ、前々回がPという記述になります。 判定も簡単で「『Pの値が0と等しい』かつ『Qの値が1と等しい』かつ『Rの値が2と等しい』である場合」となります。 あとは自力でやってみてください。 プログラミングというのは何をしたいのかが具体的に分かりさえすれば簡単にできます。(今回の場合にはメッセージ番号が0、1、2で順番に出れば良いということが分かればいい) 慣れないと難しい部分もありますが、試行錯誤で解決できる場合も多いのでとりあえず自分でやってみるということが大切です。 自分でやってみた経験は決して無駄にはなりません。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
『なんでもしますから!』をメッセージ0 『ん?』をメッセージ1 『いま、なんでもするって…』をメッセージ2 とすると「メッセージ0→メッセージ1→メッセージ2が順番に出れば良い」というのは分かりますよね? 順番に出ているかどうかを判断するにはさまざまな方法がありますが、前回のメッセージ番号、前々回のメッセージ番号を変数に記録しておくのが最も分かりやすいと思います。 R=RND(3)として変数Rに現在のメッセージ番号が入っている場合、変数Qに前回のを入れたいという場合にはRの値を決める前にQ=Rを入れておけば良いです。 前々回のを変数Pに入れたいという場合はQ=Rの前にP=Qを入れておけば良いです。
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
誰でも最初のうちは自分の思い通りに作るということはできません。 「自分ができる範囲内で完成させる」ということが重要で「できた作品を公開する」ことも上達へと繋がります。 上達するとできること(作れるもの)がどんどん増えていきます。 そうするとプログラミングはどんどん楽しくなります。 プログラミングは誰もが上達可能です。 したがって、初心者に覚えておいて欲しいのは「プログラミングは楽しいもの」ということです。 そのためにも自分が「楽しい」と思えることをとことんやりましょう。 そして、楽しいと思えることを少しずつ増やしていけばその結果が上達になります。
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
この具体的というのが厄介でコンピュータというのは融通が利かず指示したとおりにしか動きませんので少しでも具体的でない部分があると手詰まりになります。 経験があっても「完璧な設計」というのは難しいものなので経験のない初心者がそれをできるはずがありません。 そこで有用なのが試行錯誤です。 とりあえず、現状でできている部分を実際にプチコン3号で動作させてみることが大切です。 思い通りに動いてないのであればなぜダメなのかを考えればいいだけです。 いくら試行錯誤を繰り返してもプチコン3号が壊れることはないため安心です。 自力でどうしても分からなければネットで調べるなりMiiverseで尋ねるなりすれば問題ありません。 分からないことを一から他人に聞くのではなく「現状はここまでできていてこれがうまく行かない」というのを自分で認識してそれを他人に伝えられるか否かが重要です。
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
プログラミングに限らずどんなことでも上達に必要なのは個人的には「興味」と「実行力」だと思います。 興味が無いことは人に教えられてもなかなか身に付かないし、実際に試してみることが自分の力になるためです。 「興味」と「実行力」があれば「努力」は無意識のうちに行っているものにすぎません。 プログラミングとは自分が作りたいものを明確かつ具体的に決めて(設計して)、それを「プチコン3号」というコンピュータに指示していく(コードに落とし込む)ことです。 作りたいものが具体的に分かっているならばコードに落とし込む作業というのは慣れたら難しいことではなく初心者にとって難しいのは作りたいものを「具体的に考えること」だと思います。
1そうだね
プレイ済み
返信[27]
親投稿
おちゃめ ochame_nako
つまり、何が言いたいかというと初心者が人それぞれなのと同じくこのトピでコメントをしている人の「初心者像」も人それぞれということです。 どういう初心者を対象にするかで講座のあり方はπradくらい変わってきます。 ここで皆さんから意見を貰ってそれを講座の方に反映させるのも良いですが、人によって全く変わる以上はあまり反映させるぎると逆に講座として成立しなくなる恐れがあるということです。 したがって、ぎんさんが「初心者講座に必要なこと」を明確にして「どんな初心者をターゲットにしているか」「この講座を見た人にどのようなスキルを身につけて欲しいか」を具体的にすることが重要だと思います。 それによって講座の内容も方法も変わってきます。
0そうだね
プレイ済み
返信[26]
親投稿
おちゃめ ochame_nako
私はWeb上のプチコン3号入門講座では「初心者の疑問をすべて解決できるように詳しく書く」という方針にしましたが、その代償で恐ろしくテキスト量が増えてしまいました。 例えば「数値を文字列に変換する場合にはB$=STR$(A)」、「文字列を数値に変換する場合にはA=VAL(B$)」で説明が完了に思えますが、これでは十分なものではありません。 私のプチコン3号入門講座では「数値を文字列に変換」「文字列を数値に変換」だけで8000文字以上を費やして説明しています。 ざっくりとした講座は他所にいくらでもあるためこれはこれで良いと思っていますが、膨大なテキスト量を見ただけでこの講座に嫌気が差す人もいるかもしれないですね。
0そうだね
プレイ済み
返信[25]
親投稿
おちゃめ ochame_nako
私は20数年前から市販の雑誌、同人誌、Webサイト等で初心者向けのプログラミング講座を書いていますが、未だにこの正解といえるような講座にはたどり着いていません。 というか、正解自体が無いと思っています。 それは、初心者と一言で言っても知識の度合いや上達の度合いは人それぞれであるし、詳しい記述が良いと感じるのか、ざっくりとした記述が良いと感じるかも人それぞれであるためです。 Web上で不特定多数に対して一方通行的な講座を行う場合は、「正解が無い」ことを理解してベターと思えるものを模索することがまずは必要になります。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
このSLOT関数は「VARは関数である」だけではなく左辺値にもなることを利用して作っています。 他にも「文字列と数値を比較演算したら3を返す」ということを利用して型判別を大幅に簡略化した自作関数SUFFIXなどがあります。 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0fSfxRUkA 「VARを関数として使う」「簡単な型判別」の合わせ技を使えば数値でも文字列でも入る変数を宣言できる関数などを作れます。 https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkoSL6eyA こういうのを覚えておくとプログラムリストを短縮させるのを役立つだけではなく「こんなのできたらいいな」というのが簡単にできるので非常に便利ですね。 私はプチコン3号でこういう変なことばかりやっています。
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
これに気づくことができたらBREAK等でFOR~NEXTを抜けたかどうかもカウンタ変数の値を調べるだけで分かりますね。 動作しているスロットを取得する自作関数「SLOT」でもFOR~NEXTのこの特長を活かしています。 https://miiverse.nintendo.net/posts/AYIHAAAEAACHVRTs1c4kFA
2そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
WiiUのプチコンBIGは外付けキーボードや高解像度の編集画面によってプログラミングが快適にできます。 3DSのプチコン3号は携帯機であるためいつでもどこでもお手軽にプログラミングができます。 プチコンBIGはWiiリモコンやヌンチャクといった周辺機器にも対応しています。 プチコン3号は3DS本体のみあれば十分で他に必要な機器はありません。(旧3DSならば拡張スライドバッドがあると便利) プチコンBIGは高性能ですが、現時点では発売直後ということもありバグも多くみられます。(これはバージョンアップによって徐々に改善されると思われる) プチコン3号はプチコンBIGより性能が低いですが、現時点では目立ったバグはありません。(プチコンBIGよりは劣るとはいえNew3DSならば十分に高性能)
1そうだね
プレイ済み