プチコン4講座


初心者の方へ

プチコン4とは、Nintendo Switch で動作するソフトウエアで、BASICというプログラム言語を使って自分でプログラミングをしてゲームやアプリを作ることができます。

プチコンやプログラムに関して、全く知らない初心者の方は、まずは、プチコン4のゲーム内の『初心者ガイド』をプレイすることをオススメします。
初心者ガイドだけでは実際にゲームを作るまでに関しての説明としては不十分なところもあります。続きは公式のWEBでとなっていますが、残念ながら今現在プチコン4の初心者講座は準備中となっています(2019/05/25)。

よって、プチコン4のプログラミングの講座の代わりとしては、前作であるプチコン3号/BIGの公式サイトのプチコン初心者講座が一番丁寧でわかりやすいです。

まだ、公式ではプチコン4用のコンテンツはできていませんが、プログラムに関する考え方はプチコン4もプチコン3号/BIGも基本的に変わりません。

ただし、プチコン4とプチコン3号/BIGではプログラムの書き方に若干の違い、場合によっては大きな違いがあります。

また、ここではゲームプログラムを作成するにあたっての、
基礎的な知識を、極力難しいことを考えずに伝えたいと考えております。

アクションゲームを作るまでプチコン(第1回)(プチコン4版)

ここでは、プチコン4で簡単なアクションゲームを作る方法を、細かく丁寧に極力わかりやすく解説していきたいと思います。

前作のプチコン3号版のほうはこちらへ
青文字が前回から追加された、内容になっています。

※ 画像が実際とは若干違う場合もありますがご了承願います。

「プチコン4の画像を用意して、貼り付けるのは地味に面倒くさいので、ほとんど変わらない前のやつの画像でも問題ないじゃろ」とプチコン博士ならおっしゃるであろう

プログラミングを始める

まずは、トップメニューから『プログラムを作る』を選択します。


すると黒い画面のダイレクトモードの画面になります。

プチコン4にはプロジェクトというものがあります。プロジェクトとは、フォルダのようなものです。最初はワークスペースというところになっています。

現在使用しているプロジェクトはダイレクトモード時に左下に表示されます。


作成するゲームなどのプログラムはプロジェクト毎にまとめて管理することが出来ます。

ちなみに、作成したプログラムを公開する場合はプロジェクト毎に公開することになります。

プロジェクトはメニューの『ファイル操作』から追加したりすることができます。

プログラムを入力する場合はキーボードで入力します。
 プチコン4では、JoyConの『-』ボタンを押すことで、画面にソフトキーボードを表示させることができます。


ソフトキーボードでは、JoyConの『L』または『R』ボタンがシフトキーの役目をしてます。
 また、JoyConの『ZL』『ZR』ボタンを押すことで機能を切り替えることができます。


実際にプログラムを作る場合はエディタで入力します。

プチコン4には、エディタが4スロットあります。それぞれ切り替えてプログラムを入力することが出来ます。
 通常は0番目のエディタ(スロット0)を使います。
どのエディタが表示されているのかは、左下を見ればわかります。

また、エディタやダイレクトモードの切り替えは『ZL』『ZR』を押した状態で右側のボタンをタッチします

ダイレクトモードとエディタの切り替えはJoyConの『Xボタン』でも出来ます。

画面の初期化

  1. ACLS

まずは、ここから始まります。

このプログラムをEDITモードで入力します。
(わかりやすく説明するためにこの記事では行番号が付いていますが、実際のプログラムでは入力しません)

入力したら、JoyConの『Xボタン』を押してダイレクトモードに切り替えます。

黒い画面のダイレクトモードで「RUN」と入力して「Enter」を押します。(RUNと入力しなくても『+』ボタンでOK)
※ 本来は『RUN 0』と入力する必要があります。RUNの後の数字はスロット番号になります。
※ スロット番号を省略した場合は、0が指定されたことになります。よって、『RUN』 または 『+』ボタンでOKということになります。

画面の表示がすべて消えます。



ACLS命令は、プログラムを書くときはとりあえず書いておけ、というのは正解でもありますが、動作の内容を知って置く必要がありますね。

詳しい説明は入力した「ACL」にカーソルを合わせて、本のマークの「?」ボタンを押します。キーボードの場合は「F1」を押します。
 閉じる時は『ESC』ボタンか『ESCキー』になります。


このように、説明文が出ます。
 いろいろ、ズラズラと書かれていますが、『ACLS』で、画面の表示をすべて消去することができます。

このヘルプページは、下にスクロール出来たり、次のページがあったりする場合もあります。
パラメータの書き方(パラメータの数)が違って動作が異なる場合は次のページにかかれています。

このように、プログラミングでは、何かわからない命令があった場合は、とりあえずリファレンスを見る! ということが重要になります。

このような説明が書かれているものをリファレンスと呼びます。

キャラクタの表示

  1. ACLS
  2. SPSET 0,616

これで、画面にキャラクターが表示されます。

キャラクターなどはスプライトと呼ばれ、番号を指定することでどんな絵を出すかを指定できます。


また、このようにプログラムは上から順番に実行されます。

ここでは触れませんが、先程同様にリファレンスを見ればわかると思います。

いや、説明が複雑過ぎてわからないかも知れません。
 はじめはわからないものです。実際にプログラムを書いて動かして、悩むだりすることで、リファレンスに何が書いてあるのか? わかるようになるでしょう。

(偉そうに聞こえるかも知れないけど、筆者は本当にプログラミングがわからなかったんですよ)


この場合、自分の管理番号が0で、表示される絵が616番ということになります。

この絵の番号を定義番号と呼びます。

 プチコン4号では、あらかじめ定義番号に表示されている絵が設定されており、標準のスマイルツール1で確認することができます。



ソフトキーボードから『ZL』ボタンを押すと、切り替わって、『スマイルツール1』があるボタンが表示されますので、『スマイルツール1』を押すと、SMILE TOOLが起動します。
 「SMILE TOOL」はソフトキーボードの後ろに表示されるので、JoyConの『-』ボタンを押して、ソフトキーボードを非表示にして使用します。

「SMILE TOOL」は、標準で定義されている効果音や音楽、スプライトの定義を確認することができます。
 「SMILE TOOL」で『L』『R』ボタンを押すことで、確認する内容を切り替えることができます。

「SMILE TOOL」でスプライトの定義が確認できるので、616番は、忍者のキャラクターであることがわかります。
※ どうやら、今のバージョン(2019/05/25時点)では、SMILE TOOLに表示されている内容と実際の初期状態の表示原点にずれがあるようです。ゲーム作る場合は動かしてみて確認しながら都度修正しましょう。

背景の表示

  1. ACLS
  2. SPSET 0,616
  3. GCLS #C_AQUA
  4. GFILL 0,192,399,239,RGB(160,128,96)

これで、水色の空と茶色の地面を表す背景と図形が表示されます。


GCLS命令で、背景をすべて塗りつぶし、GFILL命令で指定した範囲を四角で塗りつぶします。
 色の指定は、あらかじめ決められている定数による指定と、RGB関数の指定ができます。

プチコン4では、いくつかの色は定数として定義されています。
#C_~始まる定数には、色が決められています。

※ 定数とはキーワードみたいなものです。

厳密には、その定数によって値が決まっています。

#C_AQUA は 「-16711681」で定義されています。

なので、「GCLS -16711681」と入力しても、全く同じ動作になります。


そんな、数字を覚えるのも大変だし、パット見で何書いてあるのかわからないので、定数というものがプログラミングにおいて便利で重要なものになります。


ソフトキーボードで#C_と入力すると候補として表示されます。下の矢印アイコンを押すことで次の候補が表示できます。

※ USBキーボードではカラー表示されません。


カラー定数定義だけでは、細かい自由な色を選べないので、好きな色を使いたい場合は、RGB関数で指定します。
 RGB関数では、R(赤)、G(緑)、B(青)をそれぞれ0~255の256段階で指定できます。


どの色を出すにはどの様に指定すれば良いか確認したい時は、スマイルツール2が便利だと思います。
 詳しい説明は触れませんがRGBで指定するときの簡単な確認には使えると思います。

メインループを作成

  1. ACLS
  2. SPSET 0,616
  3. GCLS #C_AQUA
  4. GFILL 0,192,399,239,RGB(160,128,96)
  5. WHILE 1
  6.  VSYNC
  7. WEND

これで、プログラムが終了しなくなります。
 (メインループという、ゲームプログラムの基本になります。)

プチコンの場合は『+』ボタン(キーボードの場合『F5』)で終了できるので別に無限ループが危ないわけではありません。(場合によっては長押しする必要もあります)

SMILEBASICのプログラムでは、条件の成立不成立は「0」と「0ではない」で表すことができます。 この場合1は0ではないので成立となります。 6行目のVSYNCという命令は一定時間待つことを意味します。


SMILE BASICでは、無限ループを実現するのに様々な方法があります。

プチコン4では、無限ループだけを実現する場合は、プチコン4のSmilebasic4から追加された『LOOP~ENDLOOP』文が有効かも知れません。

次の文で無限ループを実現できます。

LOOP
 VSYNC
ENDLOOP

キャラクターを任意の位置に表示

  1. ACLS
  2. SPSET 0,616
  3. X=128
  4. Y=64
  5. GCLS #C_AQUA
  6. GFILL 0,192,399,239,RGB(160,128,96)
  7. WHILE 1
  8.  SPOFS 0,X,Y
  9.  VSYNC 1
  10. WEND

これで、キャラクタを指定した座標に表示できます。

ちなみに、画面端の左上が(0,0)、画面端の右下が(399,239)となっています。
 指定する値は、キャラクターのSPHOMEで設定されている部分を基準とした座標になります。



細かいことは気にせずに実際に、違う値を入れてみて動かしてみればどこに表示されるかわかるでしょう。

プログラミングでは、百聞は一見にしかずというように、実際に動かして確認することが重要になります。

場合によっては、リファレンスやマニュアルに書いてあることと、実際の動作が異なっていても、実際に動作するほうを正しい動きとみなして、プログラムを組む必要があります。

※ あくまで趣味の範囲で、仕事等の重要なプログラムの場合は、実際の動きよりも、文書に書かれている内容が重要な場合もあると思います。

ボタンの入力を追加1(右移動)

  1. ACLS
  2. SPSET 0,616
  3. X=128
  4. Y=64
  5. GCLS #C_AQUA
  6. GFILL 0,192,399,239,RGB(160,128,96)
  7. WHILE 1
  8.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  9.  SPOFS 0,X,Y
  10.  VSYNC 1
  11. WEND

ここから、ちょっと難しくなります。

ボタンの入力の結果を判断して「→」ボタンが押されていたら、Xを加算します

プチコン4では、ボタンの入力の判定方法が大きく変わっています。
大きく分けて2種類の方法で判定できます。

1つめは、プチコン4で新たに追加された、このボタンが押されているか?の結果が帰ってくるというような判定をする方法。

2つ目は、前作同様にボタンの入力状態をまとめて取得する方法です。

このプログラムでは、プチコン4から新たに追加された、指定したボタンの状態を判定する方法で処理しています。

プチコン4では、Nintedo Swithの様々な機能を使ったプログラミングが出来るため、複雑な設定ができるようになっています。

なので、初心者の方はリファレンスを見たら、複雑すぎて理解できないかも知れません。

ですが、プチコン4では、特に細かい設定のパラメータを指定しなくても、ある程度は普通に遊べるゲームを作れるようになっています。

コントローラーIDはデフォルトの「0」でOKです。

これで、Switch本体の左右にJoyConをセットした状態で普通に遊べます。

ボタンIDはリファレンスを見ながら設定しましょう。


※ ボタンIDは、#B_~始まる定数になっています。
左ボタンだけでなく、右のボタンも十字キーという扱いでボタンIDが設定されているようです。

この場合、#B_LRIGHT が左JoyConの右ボタンになります。

これで、→ボタンが押されている時、キャラクタが右方向に動くようになります。

ボタンの入力を追加1(左移動)

  1. ACLS
  2. SPSET 0,616
  3. X=128
  4. Y=64
  5. GCLS #C_AQUA
  6. GFILL 0,192,399,239,RGB(160,128,96)
  7. WHILE 1
  8.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  9.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  10.  SPOFS 0,X,Y
  11.  VSYNC 1
  12. WEND

前回と同様の方法を、←ボタンでも出来るようにします。

これで、キャラクターの左右移動ができるようになります。

プレイヤーの移動範囲を制御

  1. ACLS
  2. SPSET 0,616
  3. X=128
  4. Y=64
  5. GCLS #C_AQUA
  6. GFILL 0,192,399,239,RGB(160,128,96)
  7. WHILE 1
  8.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  9.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  10.  IF X<0 THEN X=0
  11.  IF X>383 THEN X=383
  12.  SPOFS 0,X,Y
  13.  VSYNC 1
  14. WEND

キャラクターが画面外に移動してしまうと、ゲームが成り立たなくなってしまいます。

なので、キャラクターが画面外に移動しようとしたら強制的に戻す処理を入れます。

キャラクタの左上の座標を指定する必要があり、キャラクターの大きさは16×16なので、右端は383を指定します。(383 = 399-16)

これで、キャラクターの移動範囲が画面内に限定されるようになります。

プレイヤーの落下処理を入れる

  1. ACLS
  2. SPSET 0,616
  3. X=128
  4. Y=64
  5. A=0
  6. GCLS #C_AQUA
  7. GFILL 0,192,399,239,RGB(160,128,96)
  8. WHILE 1
  9.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  10.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  11.  A=A+0.1
  12.  Y=Y+A
  13.  IF X<0 THEN X=0
  14.  IF X>383 THEN X=383
  15.  SPOFS 0,X,Y
  16.  VSYNC 1
  17. WEND

ここはちょっと、物理の知識が必要になります。(難しくはないはず)

Aという加速を表す変数を用意します。(加速:Acceleration)
毎回の処理で、少しずつ大きくなるようにします。(11行目)
そして、キャラクターの座標に加速を加算します。(12行目)

これで、キャラクターの自然な落下が表現できるようになります。

プレイヤーの着地の処理を入れる

  1. ACLS
  2. SPSET 0,616
  3. X=128
  4. Y=64
  5. A=0
  6. GCLS #C_AQUA
  7. GFILL 0,192,399,239,RGB(160,128,96)
  8. WHILE 1
  9.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  10.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  11.  A=A+0.1
  12.  Y=Y+A
  13.  IF Y>176 THEN Y=176:A=0
  14.  IF X<0 THEN X=0
  15.  IF X>383 THEN X=383
  16.  SPOFS 0,X,Y
  17.  VSYNC 1
  18. WEND

このままでは、どこまでも落下していってしまうので、床の座標に来たら、それ以上落ちなくなるようにします。

Aを0にしているのは、Aがどこまでも加算していってしまうと、数字が大きくなりすぎてエラーに成ってしまう(オーバーフロー)を防ぐためです。

これで、キャラクターの着地ができるようになります。

歩行アニメーションを設定する

  1. ACLS
  2. SPSET 0,616
  3. SPANIM 0,7,8,617,8,616,0
  4. X=128
  5. Y=64
  6. A=0
  7. GCLS #C_AQUA
  8. GFILL 0,192,399,239,RGB(160,128,96)
  9. WHILE 1
  10.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  11.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  12.  A=A+0.1
  13.  Y=Y+A
  14.  IF Y>176 THEN Y=176:A=0
  15.  IF X<0 THEN X=0
  16.  IF X>383 THEN X=383
  17.  SPOFS 0,X,Y
  18.  VSYNC 1
  19. WEND

プレイヤーの移動ができても、動いているよう見えませんね。

なので、SPANIMという命令を使用して、アニメーションするように設定します。

SPANIMはできることが多いので少し複雑でですね。リファレンスを見て理解する必要があります。
SPANIM 定義番号,アニメ対象,パラメータ
となっており、アニメ対象の指定のよって指定するパラメータが異なっていたり、パラメータを指定する方法が複数あるため、プチコン経験者でもわかりにくいという声が多いものです。

今回は、アニメ対象を(7:定義番号)を指定します。(プチコン3号では3でしたが、今回はパラメータの内容が変わっているので注意が必要ですね)

要するに、定義番号(絵の種類)を変えることでアニメーションを表現できます。

パラメータを指定する方法は複数ありますが、今回は直接指定する方法を書いています。

わかりやすく改行を入れるとこうなります(実際には改行があったらエラーになるので注意)

SPANIM '
0,     ’管理番号
7,     ’アニメ対象(アニメ方法の指定:今回はコマを変えるので7)
8,617, ’1コマ目のパラメータ (表示時間、定義番号(絵の番号))
8,616, ’2コマ目のパラメータ (表示時間、定義番号(絵の番号))
0      ’ループ回数(0は無限ループ)

「ねっ。簡単でしょ」


表示時間はフレーム数で指定します。ゲームの世界では60分の1秒が1フレームとなります。

コマ数を増やしたい場合は、2コマ目に続けて同様に書いていけば良いのです。

これで、プレイヤーのキャラクターが歩く様子が表現できます。

プレイヤーのジャンプ1(押されたらジャンプ)

  1. ACLS
  2. SPSET 0,616
  3. SPANIM 0,7,8,617,8,616,0
  4. X=128
  5. Y=64
  6. A=0
  7. JP=1
  8. GCLS #C_AQUA
  9. GFILL 0,192,399,239,RGB(160,128,96)
  10. WHILE 1
  11.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  12.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  13.  IF BUTTON(0,#B_RRIGHT,0)&&(JP==0)THEN JP=1:A=-3:BEEP 8
  14.  A=A+0.1
  15.  Y=Y+A
  16.  IF(Y>176)&&(!BUTTON(0,#B_RRIGHT,0)) THEN JP=0
  17.  IF Y>176 THEN Y=176:A=0
  18.  IF X<0 THEN X=0
  19.  IF X>383 THEN X=383
  20.  SPOFS 0,X,Y
  21.  VSYNC 1
  22. WEND

少し複雑ですが、Aボタン(JoyCon右の矢印右)が押された時の場合にジャンプするようにします。

ジャンプ状態を表す変数「JP」を用意し、「ジャンプ状態でなかったらジャンプできるようにしています。

JP:0=通常,1:ジャンプ中

ジャンプ時は、加速を値をマイナスにすることで、ジャンプができるようになります(画面の上が0なので、座標が小さくなるほど上に上がるようになります)。

ついでに、音も鳴らしておきます。

16行目では、着地かつAボタンが押されていない時に、次にAボタンが押されたらジャンプできるように変数を制御しています。

※ 「!」を使用していますがこれは、反対の意味を表します。よって、ボタンが押されていないということを表します。

IF文やWHILE文での条件では、成立している時に処理されますね。

『成立 = 1』として扱われます。(ここでは代入の意味ではない)
『!』が付くと反対の意味になります。
『!(成立) = 不成立』 ということになります。
プログラムでは、『不成立=0』、『成立=(0ではない)』

つまり
『成立=(!0)』となります。よって
 
『!BUTTON(0,#B_RRIGHT,0)』
 はJoyCon右のAボタンが押されていない ことを意味します。


これで、プレイヤーがジャンプできるようになります。

プログラムでは、同じ動きであっても違う書き方があります。

なので、プログラムを書く人は、それぞれの書き方を覚える必要があります。

特にプログラムに慣れている人ほど、短い書き方を好む傾向があると思います。

自分でプログラムを書く文には、1つの書き方さえわかれば問題ないかも知れません。

ですが、世の中に公開されているプログラムでは、短い書き方をしている物がありますので、他の人のプログラムを参考にする場合は、それぞれの書き方を理解する必要があります。

プログラミングで大事なこと、百聞は一見にしかず

わかりにくいことがあれば、とにかく簡単なプログラムを書いて、実際に動かして確認してみると、わかりやすいと思います。
 ここでは条件分岐の例になります。




この様に、短いプログラムを書いて動かしてみることで、どのような値の時にどう判定されるのか知ることができます。

プチコン4の場合、変数宣言していない場合は0となります。エラーにならないので注意が必要です。。
※ 『OPTION STRICT』命令をプログラムの最初で行うことで、宣言されていない変数がある場合エラーになるようにできます。
 ここでは、触れませんが、大きなプログラムを書く場合、エラーや間違いがわかりやすくなるので、『OPTION STRICT』は重宝するでしょう。


リファレンスに書かれている文章をだだ読むだけでなく、実際に動かしてみることがプログラミング言語を覚えることでは大事なのことなのです。

プレイヤーのジャンプ1(ジャンプの高さの調整)

  1. ACLS
  2. SPSET 0,616
  3. SPANIM 0,7,8,617,8,616,0
  4. X=128
  5. Y=64
  6. A=0
  7. JP=1
  8. GCLS #C_AQUA
  9. GFILL 0,192,399,239,RGB(160,128,96)
  10. WHILE 1
  11.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  12.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  13.  IF BUTTON(0,#B_RRIGHT,0)&&(JP==0)THEN JP=1:A=-3:BEEP 8
  14.  IF(!BUTTON(0,#B_RRIGHT,0))&&(JP==1)THEN JP=2:A=A/2
  15.  A=A+0.1
  16.  IF A>0 THEN JP=2
  17.  Y=Y+A
  18.  IF(Y>176)&&(B AND 16)==0 THEN JP=0
  19.  IF Y>176 THEN Y=176:A=0
  20.  IF X<0 THEN X=0
  21.  IF X>383 THEN X=383
  22.  SPOFS 0,X,Y
  23.  VSYNC 1
  24. WEND

少し複雑ですが、Aボタンが離された時、かつ、上昇中の時に、ジャンプの加速を半分にします。

こうすることで、ジャンプボタンの押されている長さに応じた、自然なジャンプの高さ調整を実現できるようになります。

JPは、着地時0、上昇中1、落下中2 というようになります。

わかりやすくコメント(注釈)を入れる

  1. ’--------------
  2. ’アクションゲームのサンプル
  3. ’   Version:0
  4. ’   ゲームないようとか
  5. ’   2019/05/25
  6. ’--------------
  7. ACLS
  8. ’プレイヤー
  9. SPSET 0,616
  10. SPANIM 0,7,8,617,8,616,0
  11. X=128   ’Xざひょう
  12. Y=64    ’Yざひょう
  13. A=0     ’ジャンプかそく
  14. JP=1    ’0:ちゃくち
  15.         ’1:じょうしょう
  16.         ’2:らっか
  17. ’はいけい と じめん
  18. GCLS #C_AQUA
  19. GFILL 0,192,399,239,RGB(160,128,96)
  20. ’------------------------------
  21. WHILE 1
  22. ’------------------------------
  23. ’-------
  24.  ’ボタンそうさ
  25. ’-------
  26.  ’よこいどう
  27.  IF BUTTON(0,#B_LLEFT,0)THEN X=X-1
  28.  IF BUTTON(0,#B_LRIGHT,0)THEN X=X+1
  29.  ’ジャンプ
  30.  IF BUTTON(0,#B_RRIGHT,0)&&(JP==0)THEN JP=1:A=-3:BEEP 8
  31.  IF(!BUTTON(0,#B_RRIGHT,0))&&(JP==1)THEN JP=2:A=A/2
  32.  ’らっか
  33.  A=A+0.1
  34.  IF A>0 THEN JP=2
  35.  Y=Y+A
  36.  ’ちゃくち
  37.  IF(Y>176)&&(!BUTTON(0,#B_RRIGHT,0)) THEN JP=0
  38.  IF Y>176 THEN Y=176:A=0
  39.  ’がめんからでないように
  40.  IF X<0 THEN X=0
  41.  IF X>383 THEN X=383
  42.  ’プレイヤーひょうじ
  43.  SPOFS 0,X,Y
  44.  VSYNC 1
  45. WEND

プログラムが大きくなってくると、後で読むときに後で苦労することになると思います。

なので、わかりやすいように空行や注釈(コメントと言う)を入れておくと、後で自分が見た時に読みやすいし、自分以外の人が見た時も読みやすくなります。

コメントはなるべく英語で書くことが望ましいと思いますが、日本人なら日本語でもOKだと思います。(自分が読みやすいことが重要ですね)

コメントを書くときのポイントは多すぎず、少なすぎず。

プログラムに見出しとして書くか、
プログラムで書けないことを書くとわかりやすくなります。

プログラムのセーブとロード

 

書いたプログラムは保存しないと消えてしまいます。

プチコン4では『SAVE』と『LOAD』で、保存と読み込みができます。

『SAVE”ACT_GAME.PRG”』とダイレクトモードで入力して、『ENTERキー』を押すと、スロット0のプログラムを「ACT_GAME.PRG」という名前で保存することが出来ます。



『LOAD”ACT_GAME.PRG”』とダイレクトモードで入力して『ENTERキー』を押すと、スロット0のテキストエディタに「ACT_GAME.PRG」のプログラムを読み込むことができます。




プログラムのファイル名をつける時は、プログラムの場合は末尾に「.PRG」をつけるとわかりやすいでしょう。

どの様な名前でも(厳密には決まりがありますが)セーブや保存することができますが、ファイル名の末尾にどのような目的のファイルなのかわかるようなファイル名にすると便利だと思います。

ちなみにWindowsパソコンでのファイル名の末尾についている「.txt」や「.jpg」のようなものを拡張子と呼びます。

プチコンでもそれに習ってファイルに拡張子をつけるとわかりやすいでしょう。

プチコン4では、画面に表示されるソフトキーボードに簡単にファイルの保存と読み込みを行う便利な機能がありますので、実際には、そちらを使うと便利でしょう。
 簡単ロードをするには『L』または『R』ボタンを押して画面キーボードの表示内容を切り替える必要があります。




また、USBキーボードでも、
『CTRL』+『S』で簡単セーブ、
『CTRL』+『L』で簡単ロードの機能を使う事ができます。
プチコンには、プロジェクトというフォルダのようにファイルをまとめて管理することができます。

トップメニュー画面のファイル操作のメニューから、新たにプロジェクトを作成することもできますし、現在使用するプロジェクトはメニューから変更することができます。

※ 一応ダイレクトモードからも変更できますが、メニューを使ったほうがわかりやすいでしょう。

まずはここまで

 

ここまで、できればゲームプログラミングの基本は十分ですね。

実際にゲームを作るときは敵の表示や動き、接触時の当たり判定処理などが必要でありますが、そこから先は複雑になっていくので、次回のアクションゲームを作るまで(第2回)で解説していきたいと思います。

ゲームを作るということは簡単なことではない

このように、プログラムと言うものはこのような単純な動きだけでも、数十行の記述が必要になり、実際にゲームを作る際は更に行数を記述することになり、相当な根気が必要なものになります。

しかし、ここまで書いて動かしてみて面白いと感じたのなら、自分で試行錯誤したり、ネットや書籍を頼りに独学でプログラミングについて学んだりしてみるのもよいでしょう。

ここから先は、もうちょっと難しくなります

ここから先は本当に初心者にとって難しいものになるため、非常に解説するのも難しくなります。

実は一番プログラムの習得が早い方法が、自分よりも上の人が作ったプログラムを見ながら書き写すこと、だったりします。

なので、公開キーでダウンロードせずに、自分の目で見てプログラムを書き写すことが大切なのです。

なぜかと言うと、実際に書き写そうとすると、どこかに誤りがあったり(自分がおっちょこちょいだからでもある)、プログラムを動かしながら、自分の間違いを探したりすることになると思います。
 そういうことをして、自分で打ち込んだプログラムと参考にしているプログラムをじっくり見て、試行錯誤を繰り返すことになります。
 そうしている内に命令やロジックの仕組みを理解したりできるのです。

それは、非常に時間と根気が必要です。

自分はパズルが好きなので、どうしても自分の力だけでやり遂げたくなりますが、本当の近道は他人の良いプログラム理解することです。
(プログラムに何年も触れてわかったこと)




inserted by FC2 system