Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
17 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27154
次のページ(過去)
返信[11]
親投稿
おちゃめ ochame_nako
このサンプルでは変数を理解する上で重要な「値が変化する」ということの理解が図れるかは微妙(せっかくループ内で処理しているのに変数の値が固定というのも・・・)に感じますが、その辺は解説でカバーできていればいいのではないかと思います。 あと今後の展開についてすごく個人的な意見ですが、ボタン操作を行う際にはWAIT 1で固定した方が失敗が少なくてオススメです。 動きを遅くしたい場合は変化量を小さくするのが良いです。 コンソールではその変化量で速度調整ができない(小数で変化させると不具合が発生しやすい)ため「アクションゲームを作る際にはコンソールよりもスプライトの方が初心者にとって易しい」というのが私の考えです。
2そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
プログラミングには正解はありません。(どの行に何を打つというのは決まっていない) それは自分が思っているように動作していればすべてが正解であるためです。 したがって、他の人が作ったプログラムはその人にとっての正解でしかないです。 では、他の人が作ったプログラムは自分にとっての正解とは限らないため意味がないのかというとそんなことはありません。 プログラムというのはコンピュータへの指示を羅列したものですが、その際の指示の出し方というのは命令の意味を覚えただけでは難しいためです。 どのように指示を出せば良いのかという一例を知るというのはそれだけで価値のあることなのでプログラムの写経(見て入力する)というのも命令の使われたを理解する上で意味のある行為だと思います。
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
プチコン3号によるプログラミングは機械の分解とかとは異なり失敗してもリスク(危険性や損失)は何もありません。これを言い換えれば「いくらでも試行錯誤ができる」ということです。 だから、エラーを恐れずにいろいろなことを行ってみましょう。 画面に絵を出す方法に付いて知りたければ実際にそのようなことをしているプログラムを読んだり、改造したりしても良いです。もちろん、Miiverseで質問するのもありです。 勉強の仕方は様々ですが、学校の勉強ではないのだから「勉強する」と気構えずに気軽に楽しくやることが重要だと私は思います。 プログラミングの楽しさ(ゲーム作りの楽しさ)が感じられるようになれば上達は早いと思います。 ぜひ、プログラミングを楽しんでください。
3そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
つまり、恋愛シミュレーションと一言でいっても「画面に絵を表示する」「メッセージ(文字)を表示する」「ボタン操作で選択する」「パラメータを変化させる」「イベントを発生させる」などの様々な要素で構成されているのです。 それをプチコン3号に分かる形でさらに細かい指示に分解していく必要があります。 したがって、単にたくさんの命令を覚えれば良いというものではなく自分が作りたいものを実現するにはどんな命令をどのように組み合わせて使うということが重要になります。 そして知っておく必要があるのは「命令の組み合わせ方というのは1つではなく無数に存在する」ということです。学校の勉強のようにあらかじめ正解が決まっていてそれに合う答えを導き出すのではなく「自分が思ったように動けばすべて正解」となるのがプログラミングの面白い部分です。
4そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
プチコン3号などのコンピュータというのは人間が指示(命令)を与えなければ動きません。その指示を羅列したものがプログラムです。 とはいえ、コンピュータは馬鹿正直であるため命令されたことを命令されたようにしか動きません。したがって、コンピュータに分かる形で記述する必要があるわけです。 実際に作りたいゲーム(コンピュータに実行して欲しいもの)が具体的にあるならば理解をするのは非常に早いです。 ときメモ系の恋愛シミュレーションだったら画面に絵を表示してボタン操作によってパラメータを上げ下げをするというのが基本となります。(もちろん既存のものに捕らわれず自分で新しいジャンルの恋愛シミュレーションを作ってもよい)
2そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
他人が描いた絵を興味ある部分から真似て描けば良いと思います。 何も見ないで描くというのは初めて経験するプログラミング言語において何も見ずにプログラミングを行うのと同じくらい難しいことです。 もしも「見ない縛り」で描いているならばそれをやめることが上達の第一歩だと思います。
1そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
変数において代入は非常に重要な要素ですが、「値が変化する」ということが変数を使う一番のメリットであるためそれを使ったサンプルにするとより良くなるかもしれません。 スプライトを絡めて変数の理解を図りたいならばこんなサンプルはどうでしょうか? X=8 WHILW TRUE  X=X+1  SPOFS 0,X,8  WAIT WEND X=X+1の1を2や4のように大きな数字にすれば「キャラが速く動く」ということも分かるし変数Yを用意して縦方向にも動かすことができると思います。 「画面の端から出ていかないようにするにはどうしたら良いか?」「ボタンで操作するにはどうしたらよいか?」という疑問が出てくると思うので「条件判断を行う」という発展にもつなげやすいと思います。 とはいえ、初心者はX=X+1を理解するのも大変なので上記のサンプルの前にさらにワンクッションあった方がベターでしょうね。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
実はプチコン3号ではDIM X[10]として10個のロッカーを確保した後にそのロッカーを無い状態(DIM X[0]の状態)にすることができます。 これがSilverBlueさんが書かれているメモリ解放の状態でロッカーだと使用されていた土地が解放されて他のことに使える状態に戻っているわけです。しかし、完全に無かったことになるわけではない(ロッカーは無いけどXという名前のロッカーを作ることは申請済み)ので新たにDIM X[0]とすると二重申請となり怒られてしまう(二重定義エラーが発生してしまう)のです。
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
変数を箱に例えた場合には配列変数は番号で管理するロッカーのようなものに相当します。 DIM X[10]とした場合にはロッカーを置く場所として確保された土地にX[0]からX[9]の10個が設置されます。 DIM X[0]とすると0個のロッカーが設置されます。これはどういうことかというとロッカーを置く申請を出した状態を示します。 ただし、まだロッカーそのものが存在しないのでそこに情報を入れることはできません。
0そうだね
プレイ済み
返信[37]
親投稿
おちゃめ ochame_nako
超初心者というのは「初心者を超えたという意味合いにとられる可能性があり「脱初心者」と同じく「初心者卒業」に近い意味合いに感じる人もいるかもしれません。 「すごい初心者」という意味で「まだ初心者にも満たないレベル」というのであれば「初心者未満」と記述すれば誤解が発生しないと思います。 とはいえ、始めたばかりの人も「初心者」だし、「どこからが初心者か」というのは非常に難しいため「初心者に満たないレベル」というのがどの程度のものかが分かりづらいのが最大の難点に感じますが。 個人的には「初心者のために講座を書く」と気張らずに「自分の覚え書きとして」「自分の勉強のまとめとして」講座を書くくらいの方が結果的に良いものが書ける気がします。 これはプチコンでゲームを作る場合にも「みんなが面白いと思ってくれる作品」ではなく「自分が面白いと感じる作品」を作るのに似ていると思います。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
GOSUBはGOTOと違って「RETURNでどこに戻るか」という情報を記録しておく必要があります。これはスタックメモリ上に記録されますが、プチコン3号のではメインメモリとは別の場所に確保されています。 このスタックメモリはRETURNで戻るたびに解放されますがRETURNがない状態だとどんどん減ってきます。そして、スタックメモリが無くなってそれ以降の続行が不可能になった時点でStack overflowエラーとなるわけです。 ちなみにプチコン3号のスタックメモリはGOSUBだと16383回分確保されています。
6そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
識別用の文字列を付ければ他の人とファイル名が重なるリスクは軽減できるとはいえ識別用の文字列が重ならないようにしなくてはなりません。そのためには他の人がどのような識別文字を使っているのかを知る必要がありそれを一元管理する必要性を感じたため私のサイトで管理することにして青い鳥SNS等で呼びかけたというわけです。 これによって識別文字列を使用する人は圧倒的に増えました。 こうやって、mkIIではそれが定着したというわけです。 実は以前プチコン3号用のも作ろうと思っていた矢先にプチコン3号のデータがすべて吹っ飛んでしまって計画がごわさんになりました。 しかし、最近新たに識別コードに追加して欲しいというユーザーも現れたため本日ユーザー識別コードのプチコン3号版を作りました。(青い鳥参照)
1そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
初代プチコンからの経緯を説明すると初代プチコンにおいてはネット経由のファイル公開が不可だったため特に問題は起きなかったのですが、mkIIからはQRコードによるネット上での公開が可能になってから悲劇が起きました。それは、ファイル名の重複です。 最大8文字までのファイル名しか付けられないmkIIにおいてはPC歴の長い人は発売当初から自主的に識別用の文字列を付けていました。私もmkII購入直後からOCHAという文字列で始まるファイル名を付けていました。とはいえ、大半の人は自分が好き勝手なファイル名を付けていたため例えば「PIANO」というファイル名のプログラムだけでも全く別の数名が付けていてファイル名が被りまくっていました。
1そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
便利なツールを作っている人のページへリンクを張る、(他の人のツールに劣っていても)自分で便利なツールを作る、標準のスマイルツールを上手く使うための解説を行うなど様々な方法がありますが、自分のやりやすいようにやるのがベターではないかと思います。 まぁプチコン3号の場合は一旦公開されたファイルならば二次利用が可能なので他の人が作ったツールをnobuさんの手で公開するという方法もありますね。(マナーとしては制作者が誰なのかをきちんと明記すべきですが)
0そうだね
プレイ済み
返信[26]
親投稿
おちゃめ ochame_nako
あと専門用語に関しては私はポピュラーな用語に関してはできるだけ使うようにしています。ただし、インデント(字下げ)のように直後に必ず補足や解説を入れることで初心者への理解を図るようにしています。 専門用語を意図的に使うのは自力でネット検索をする場合には検索で引っかかりやすく自力による学習がしやすくなるためです。専門用語を使わずに別の言葉で置き換えてしまうと分からない場合に検索の足がかりが無くなってしまいます。
1そうだね
プレイ済み
返信[25]
親投稿
おちゃめ ochame_nako
例えばボタン入力判定もいきなりIF B AND #A THEN ~では初心者には意味不明だし(「おまじない」として丸暗記してもらうという手もあるけどボタン入力判定の場合は丸暗記では困るためそういうわけにはいかない)、間違った使い方をする恐れがあるため下記のような流れによってスムーズな理解が行えるようにしています。 IF B==#A THEN ~     ↓ (2進数を使わない)ANDの簡単な説明     ↓ IF (B AND #A)==#A THEN ~     ↓ 0(false)と非0(true)の説明     ↓ IF B AND #A THEN ~ これが正解とは限りませんが、複数の回にまたがって解説する場合はこんな感じで流れを意識することは重要だと思います。
1そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
nobuさんの講座なのでやりたいようにやれば良いです。独自性というか、自分の講座ならではの要素というのもせっかく講座を書くのだから盛り込みたいですよね。私もそういうタイプなのでそれについては共感できます。 しかし、他の人の考えも聞いてみたいだろうから私の考えも書いておきます。 講座を書く場合に重要なのはその講座を読んでどのようになるのが望ましいかということです。 特に連続した講座を書く場合は最終目標を設定しておくとブレずにスムーズな流れができると思います。 私の「プチコン3号入門講座」では中級者になることを目標にしています。 そのため中級者になるために必要なことを各所に盛り込んでいるものの適切なステップアップも心がけています。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
これって例えば「キャラがジャンプしたときに地面にめり込まないようにする」など多くのゲームで必要になるテクニックです。 具体的なプログラムはあえて書きませんが、方法としては下記の2つのものが多く使われていると思います。 (1)重なる前に止める (2)重なった後で座標を補正する (1)は当たり判定を見た目より大きくしたり計算によって衝突時の座標を求めたりして上手く重ならないようにすれば良いです。 (2)は重なった後で重なり具合を見てその分だけ位置をずらせばOKです。これだと一瞬重なったように見えるのではないかと思うかもしれないですが画面表示は1秒間に約60回(1フレームごと)にしか行わないため表示更新前に座標を動かせば問題ありません。 これらは一例にすぎず方法はたくさんあります。「これは正しくあれは間違っている」ということはなく自分が思ったように動けばどれもが正解です。
3そうだね
プレイ済み
返信[36]
親投稿
おちゃめ ochame_nako
しんいちさんへ BIGが発売されてからすぐにファイル圧縮機能を備えていることに気づいたのでプチコン3号でそのファイルを読ませてみたところ無事にプチコン3号で読めました。 というわけで、私がプチコン3号で作った「簡易地球儀QSP」ではBIGで保存して圧縮したGRPを採用しています。(ただし、当時のver.3.5.0では圧縮ファイルを読み込んだ後に書き込んだらファイルが壊れるというバグがあった) 今のバージョンならば普通に読み書きするだけならば問題ないと思います。 ZEXさんへ 配列は整数型を使い次元数をそろえればエラーが出ずに読み込めると思います。
3そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
さらにいえばLの値は画面表示のX座標設定となります。 システムに戻ったときの画面表示のX座標をこれで変えられるため覚えておくと便利です。 L=0のときは画面左端に表示ではなくシステムでの画面表示機能を利用しないというだけのことです。 これらは「(超簡易的な)システムコール機能」と思えばOSもどきっぽさがアップすると思います。 ただのランチャーとOSもどきを差別化するとしたらこの部分かもしれません。
0そうだね
プレイ済み