【Switch】ゲームの作り方 補講2 プチコン4のサンプルゲームの難易度を下げてみた【プチコン4】ワークショップ資料 後半

BASIC入門編

ひろじいべーしっくch「BASIC入門編」の補講2の動画の解説・補足。(0-032)

ここでは、Switchプチコン4のサンプルプログラムの解説及び一部の改変と「ワークショップ資料 後半」のレビュー等を紹介しています。

プチコン4のサンプルプログラムとは?

2025年6月時点では13本のサンプルプログラムが収録されています。

 1 DOTOWN.GRP (前田デザイン室のグラフィックデータ。BASICDEMO4826行目で使用)

 2 BASICDEMO (「命令ごとのデモ」プチコン4のデモプログラム)

 3 DOTOWN_DEF.PRG (前田デザイン室の定義プログラム。BASICDEMO4827行目で使用)

 4 DOTOWN_NAME.PRG (前田デザイン室の各デザインの名称データ)

 5 EX1TEXT (EX1:「もじひょうじ」文章のプログラム)

 6 EX2CALC (EX2:「けいさんCOMPUTER」電卓のプログラム)

 7 EX3KEYDRUM (EX3:簡易鍵盤ドラムのプログラム)

 8 EX4NUMGAME (EX4:数当てゲームのプログラム)

 9 EX5BIORHYTHM (EX5:バイオリズムのプログラム)

10 GAME_RPG.PRG (「ダンジョンたんけん」RPGプログラム)

11 GAME_SHOOTER.PRG (「SHOOTER」シューティングプログラム)

12 GAME_TALK.PRG (会話ゲームプログラム)

13 KANJITBL (漢字を含む日本語文字のリスト)

「使用するプロジェクトの変更」では選択に登場しませんが、ダイレクトモ^ドでPROJECT命令を使うことにより、使用するプロジェクトを変更できます

PROJECT“#EXAMPLE”

単にサンプルプログラムを遊ぶだけであれば、TOPMENU>作品を見る>サンプル>遊びたいプログラムを選択しAボタンで実行できます。

実行後、エディットモード(ダイレクトモードからXボタン)でプログラムの中身を確認できます。

データのみのプログラム(上記3、4、13のプログラム)は実行しても即終了となりますが、こちらも実行後、エディットモードでプログラムの中身を確認できます。

1のDOTOWN.GRPはGAHAKUから例えばG1のページでLOAD(LOAD画面で、一旦GPAGEの名称を消してDOTOWN.GRPとしてLOAD)すればGAHAKUに読み込めます。

LOAD画面で、一旦GPAGEの名称を消して

DOTOWN.GRPとしてLOAD

GAHAKU のG1ページに前田デザイン室の画像を読み込めます。

プチコン4のサンプルゲームの難易度を下げてみた。

GAME_SHOOTERG(オリジナル)

ざっくりとした図はこんな感じ。

GAME_SHOOTERG 改造1 ほぼ無敵。EAZY

網掛けは変更なし。

改造をハデに無敵っぽくすると終わらなくなるので、+キーを長押し、またはF5で終わる。

GAME_SHOOTERG 改造2 もう少し面白くした。

変更点は以下の通り。

・10機。

・自機はHPを1減らす仕様にした。

・レベルはEAZY

・ボスを倒してもゲームオーバー

・移動範囲を常識的に制限(画面外でも移動可能となっていた)

・連射可能にした。

・自機のミサイルが一旦戻らないようにした。

SHOOTORG3

改造3 2面目を作成(改造2からの変更点)

注意点

SHORTGSCというDATファイルを作成する。中身は配列DA

DA[0]にスコア、DA[1]に自機の残機数を1面から2面に引き継ぐ。

VER4.1(1面用)とVER4.2(2面用)

VER4.1(1面用)

2行目 VER4.1

13行目 DIM DA[10]追加

119 LOCATE 23,18:?“ROUND 1 CLEAR” 

120  COLOR #C_WHITE

121 DA[0]=SC

122 DA[1]=HP

123 SAVEV“DAT:SHORTGSC”、DA

124 EXEC“SHORTG4_2”

125 END

VER4.2(2面用。名称は1面用の124行目からの引継ぎである“SHORTG4_2.PRG”である場合)

2行目VER4.2

(旧) 9. M1$=“:1@108L16V60O1[C<E<C<G<C<D<C<A]”を

(新) 9. M1$=“:1@108L16V60O1[E<C<C<G<C<D<C<A]”
(旧) 10. M2$=“:2O2@38V90L8[C<C]” を

(新) 10. M2$=“:2O2@38V90L8[C<B]”

(旧) 13. PP=  0:SPSET PP,3323:SPD=2:SC=0:HP=10:BH=200を

(新) 13. PP=  0:SPSET PP,3323:SPD=2:BH=200:DIM DA[10]:LOADV“DAT:SHORTGSC”、DA:SC=DA[0]:HP~=DA[1]に変更

15行目

(旧) 15. BP=100:SPSET BP,3512:SPOFS BP,SCW/2,-128,0

(新) 15. BP=100:SPSET BP,7779:SPOFS BP,SCW/2,-128,0

16行目に  LOCATE 1,4:?”ROUND 2“追加

33行目

(旧) 33. SPCOLOR EX, RGB(64,55,55,55)を

(新) 33. SPCOLOR EX, RGB(64,255,255,55)に変更

119行目以降はSHORTG3_1と同じ

119 LOCATE 23,18:?“GAME OVER” 

120  COLOR #C_WHITE

121 END

プチコン4 ワークショップ資料 後半の「クレイジードレドランド」レビュー

公式ホームページから(プログラミング学習→プログラミング学習資料と進んでください。)「プチコン4ワークショップ資料後半」のpdfをダウンロードしてください。また、今回使用する「クレイジードレドランド」を公開キー44JSD32EX3でダウンロードしてください(無料です)

動画では順調に指示通り入力をしていきますが、「L04:Yボタンで加速する」での419行の入力

こちらについては

IF BUTTON(0,#B_DASH) THEN

つまり、DUSHではなくDASHが正しいです。

改造1 1面のダンジョン変更。ジャンケンを公平に

(1面のダンジョン変更。)動画の45分53秒

2822行あたり @STAGE0‗0の中のDATA “GAAAHY”を“GAZ”に変更

(ジャンケンを公平にする)動画の47分42秒

1075行あたり IF ZURU==0 THEN JAN$=JTBL$[RND(3)]をJAN$=JTBL$[RND(3)]に変更

改造2 クマが出すジャンケンをグーの固定にする。動画の48分31秒

1075行あたり IF ZURU==0 THEN JAN$=JTBL$[RND(3)]をJAN$=JTBL$[0]に変更

その他改造の参考 いけ めんぞう氏作の「クレイジーまるはげランド」公開キー 4BNE2KHE

「ひろ入1」のサイズを必要最小限の少なめのサイズにしました

「ひろ入1」(公開キー44425K433)についてはサイズが大きすぎる状態がありました。

SPRITE‗TESTが通常のグラフィックページ4ページとほぼ同じサイズだったためです。

参考としてまずLOADG命令とSAVEG命令を確認してください。

+++++++++++++++

LOADG “[ファイル種類:]ファイル名”,グラフィックページ[,OX,OY]

LOADG “[ファイル種類:]ファイル名”,グラフィックページ[,OX,OY] OUT 幅,高さ

画像ファイルを読み込む

・オフセット指定時はみ出した部分は無視される。

・実行結果はRESULT関数で取得できる。

・RESULTの値は、成功時は1、失敗時は0、キャンセル時は-1となる。

引数

ファイル種類

GRP,JPGまたはDATを指定できる

・省略時はGRPを指定した事になる。

・DATを指定した場合、二次元整数配列以外のファイルはエラーとなる。

ファイル名文字列

読み込むファイル名

グラフィックページ

読み込んだ画像データを格納するグラフィックページ:0~5

OX,OY

画像の読み込み先座標

・省略時は0,0を指定した事になる。

返値

幅,高さ

読み込んだ画像データの幅と高さ

LOADG “GRPDATA”,1

LOADG “DAT:DATA”,2,0,64

LOADG “GRPDATA”,2 OUT W,H

+++++++++++++++

SAVEG “[ファイル種類:]ファイル名”,グラフィックページ[,始点X,始点Y,幅,高さ]

グラフィックページの内容をファイルに保存する

・上書きセーブ時は上書き前のファイルが @BACKUP.GRP という名前で保存される。

・実行結果はRESULT関数で取得できる。

・RESULTの値は、成功時は1、失敗時は0、キャンセル時は-1となる。

引数

ファイル種類

GRPのみ指定可能

・省略時はGRPを指定した事になる。

ファイル名

セーブファイルに付ける名前

グラフィックページ

セーブするグラフィックページ:0~5

始点X,始点Y

保存したい領域の左上の座標を指定する(X,Y共に0~2047)

・省略時は0,0を指定した事になる。

幅,高さ

保存したい領域のサイズを指定する(幅,高さ共に1~2048)

・始点Xと幅、または始点Yと高さを足した結果が2048を超えるとエラーとなる。

・省略時は2048,2048を指定した事になる。

SAVEG “GRP:GAZOU”,0

SAVEG “GAZOU_ICHIBU”,3,100,100,300,300

+++++++++++++++

話を戻します。SPRITE‗TESTが通常のグラフィックページ4ページとほぼ同じサイズだったため、「ひろ入1」のサイズが大きくなっていたのです。

適正なサイズのグラフィックデータ(今回は16×16サイズだった場合)を抽出するため、仮に古いグラフィックデータの名前を“SPRITE‗TEST”

新しいグラフィックデータの名前を“GPAGE3‗TEST2”とするならば、以下の命令を実行することでできます。

書き込むときは0ページですが(3ページで使用する目的でも、3行目の様に3,0,0,16,16で作成した場合はGAHAKU3ページ目で読み込んでも読み込みができません。4行目の様に0ページで作成、すなわち引数を0,0,0・・・にして下さい。)

中身は、これを(4行目の様に0ページで作成した場合は)GAHAKUの3ページ目で読み込むと次の様に利用できることが確認できます。

グラフィックからの表示確認用のプログラム

上記の実行結果

なお、更新により名称はGPAGE3_TEST2からSPRITE_TESTになっています。

2025年6月にはサイズは小さくなっているので更新をお願いします。

また、同じく「ひろ入1」に入っているN12‗ROULETTE_3は以下の様になっています。

N12‗ROULETTE_3の実行結果

モールス信号(1)

NHKマイコン入門(日本放送協会、昭和57年(1982年))でNHK放送、書籍でも掲載された「モールス信号」のプログラムをプチコン4用に移植してみました。

実行後INPUT文で聞いてきますのでアルファベット(英文字)で入力してください。終了は999と入力してください。

DATAの1は短い音2は長音、3は休みです、参考としてモールス信号の一覧表を以下に載せておきます。(出典はウィキペディアなど)

実行結果(動画の57分57秒)

なお、“SOS”を悪戯に使用せず、取り扱いには注意して下さい。

モールス信号(2)

上記モールス信号(1)の自動再生版です。@BUNにあるDATAにあなたの思った英文で入力し、最後に“999”を入力してください(下記の19行目DATA“999”)

実行結果(動画の59分2秒)

あとがき

Switch2の性能は最大120fpsとなる場合があるため、従来のSwitchが60fpsであることからプチコン4への公式からの今後の更新が注目されます。

コメント

タイトルとURLをコピーしました