コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
RU-RA ◆WXDJqyOv9yBK
2018/9/20 13:56
質問
ゲームに必要な命令
皆さんから、命令を教えてほしいです。
プログラムというか、ゲームのを。
基礎中の基礎というか、応用なのを。

表現しにくいですが、まとめてみると、

中、上級者向けの命令

を、教えてほしいです。
お願いします!

コメント

アバター
こういち 2018/9/20 14:07 ◆ou0jbJnEJ0Kb
ACLS
REPEAT〜UNTIL(WHILE〜WENDでも可)
RND()
BUTTON()
INPUT、LINPUT
IF〜THEN〜ENDIF
この辺はゲームを作る上で最低限必要な命令…かな?
アバター
こういち 2018/9/20 14:13 ◆ou0jbJnEJ0Kb
あとはゲームによってスプライトやBG関連が必要だったり必要じゃなかったり。
それからサブルーチンは覚えておくと便利。
一番シンプルな使い方は
DEF サブルーチン名
 VAR サブルーチンの中でのみ使う変数(FORでよく使うIなど)
 処理
END
みたいな感じです。何回も同じような処理を使うときに
サブルーチン名
と書くだけでサブルーチン内の処理を実行してくれるので便利。
アバター
RU-RA 2018/9/20 14:44 ◆WXDJqyOv9yBK
有り難うございます。

シッテタケド
アバター
たんじぇ 2018/9/21 11:01 ◆WDmFkVwZ4yMl
ゲームって1秒間に60回、ボタンや入力の状態を見て、ゲーム用の処理をして、ゲーム用の画面や音を出力をしているだけなのです。

なにかから入力して、処理して、なにかに出力する。
ゲームの基本はコレです。

プチコンだと入力はBUTTON()から十字キーとボタン、TOUCH でタッチパネルなど、公式の命令表の「入力」の部分の命令です。
http://smilebasic.com/reference/

プチコンで出力は基本的に画面と音なので、公式命令だと「グラフィック」「スプライト」「BG」「サウンド」あたり。

処理の部分はどんなゲームにするかで変わってきますが、ほとんどの場合は変数や配列を操作して、画面表示するためのSPRITEやBGを操作することになります。

「ゲームループ」と呼ばれる、1秒間に60回の処理をするためのループがまずは必要で、これは

WHILE 1
GOSUB @INPUT_KEY ' キー入力
GOSUB @GAME_LOGIC ' ゲーム処理
GOSUB @OUTPUT_SCREEN ' 画面出力
VSYNC 1 ' 1/60秒経過するまで待つ
WEND

みたいな形になります
GOSUBやサブルーチンが慣れないならゲームループ中にまず処理を描いてしまっても良いと思います。
そのへんは自分のやりやすいように書いてみて、将来的に書き直せばよいです。


IF文で分岐すること、FORやWHILEでループすること、GOSUBやDEFで処理を呼び出して戻ってくること、あたりが理解出来ていればまずはプログラムの基本は大丈夫だと思います。

配列は使わなくてもまずはゲームは作れるけど、理解できたほうが便利です。

入力は最初のうちはBUTTON()だけでなんとかなります。

出力はSPRITE、BGが基本となるので、まずはSPRITEが動かせるようにしたり、BGを表示できるようにしたり移動出来るようになると良いです。
音楽はひとまずプチコンに最初から入っているものを使いましょう。

あとはボタンの操作や時間の経過でいろんな変数を変更して(横に移動とかジャンプとか画面の位置とか敵が主人公に向かってくるとか)、その変数から主人公や敵のSPRITEの位置やBGの位置を変更するような処理になります。

何が地面で何が障害物で何がゴールなのかを考えて作るのがゲーム作りになります。
アバター
こういち 2018/9/21 14:34 ◆ou0jbJnEJ0Kb
サブルーチンが分かるならSPFUNCやBGFUNCを覚えておくと便利ですよ。
SPFUNCはスプライトにサブルーチンを埋め込む命令で、スプライトの動きをあらかじめサブルーチンにまとめておいて、SPFUNCでサブルーチンを埋め込めば、CALL SPRITEと書くだけでスプライトがそのサブルーチンを実行してくれます。


DEF MOVE
 VAR SP=CALLIDX,X,Y
 SPOFS SP OUT X,Y
 SPOFS SP,X+1,Y-1
 IF X>384||X<0||Y>224||Y<0 THEN
  SPCLR SP
 ENDIF
END
VAR I,SP
FOR I=1 TO 100
 SPSET 0 OUT SP
 SPOFS SP,RND(384),RND(224)
 SPFUNC SP,"MOVE"
NEXT I
WHILE 1
 WAIT
 CALL SPRITE
WEND
アバター
ツララ 2018/9/21 18:47 ◆ArUdBYOYME1V
試しに表示関係は全てDIALOG命令で何とかするのを作ってみたらいいんじゃないんです?
展開が一本道ならループも必要無いですし
返り値が-1,0,1の3択で分岐なら+1して0,1,2にして
ON GOTO構文が使えますし。
面倒くさい数式を使いたく無い時とか、プログラムが長くなってもいいからイメージ優先したい時とか便利。
会話形式で遊ぶゲームをどれだけ知っているかが分かれ目ですかね。
言葉だけじゃ意図した状況を伝え難い場合にグラフィックを併用する感じで。

上級者って別に色んな「命令」を知ってるから上級者ってわけじゃなくて
色んな「使い方」を知ってるかどうかだと思いますよ。
だからRU-RAさんも今使い方に凝っている命令があったりするなら
「この命令はこんな変な使い方もあるよ」っていうのを教えて下さいってお題にした方が面白いかも。
アバター
RU-RA 2018/9/21 20:31 ◆WXDJqyOv9yBK
用があって話せなかったんです。汗
皆こんなにたくさんありがとうございます!ヽ(・∀・)ノ

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -