見出し画像

(まだ途中7.28更新)[プチコン4]【プログラミング】スーパーマリオを作りたい😆#1 〜ブロックとキャラクターの当たり判定まで〜

はじめまして。✨〜私のプログラミング歴〜

やった事あるプログラミング🧑‍💻ソフトは、『3DSの、プチコン3号』と、『はじめてゲームプログラミング』と、『プチコン4』です。🎮
なんと↑(計)プレイ時間1400時間もやっていた⁉️😮でも遊ぶ専門でした。初心者🔰です…

(ちなみに、一番初めのキッカケ💫は、その頃プログラミングという言葉を知らなくて、なんとなく「ゲームを作るゲーム」と🔍検索してみたことがきっかけ!!)


 でも、最近は作りたいものがないので全然やってませんでした。だけど作りたいものは、あるにはある!けど、技術がなくて作れないもどかしさ…(どうぶつの森✖️マイクラ、テラリアとか)
 😩でもマリオ🎮なら作れそうと思った!しかも、面白そうだし!!(テトリス🟪もいいなと思ったけど難しそう…)


 ずっと前にも、作ろうとしたけれど、ブロック🟧とキャラクター🏃‍♂️‍➡️の当たり判定わからなくてやめちゃった😔
だから、リベンジだツ🔥
2024

この記事は誰のために書いてるのか。それは筆者自分自身のためです。全くしらない人にわかりやすくつたえる練習だ😚

頑張って作っていきたいと思います😆(行き当たりばったりだけど!)

🗒️不定期更新。なので、完成まで何年かかるのか😡?
(著作権がわからない。❓スーパーマリオブラザーズとか、「noto」に書いていいのか。)


プチコン4とは?

『ニンテンドースイッチ』でプログラミングが出来るソフトです!(体験版もあります!)
「SmileBASIC」というプログラミング言語です
なんだかゲーム制作や、学習用に開発された、やさしめの言語らしい??です。


 キーボード⌨️&マウス🖱️はあると便利です⭐️(USBキーボードが推奨されてます。無線は、USBレシーバーあるやつなら、できる!)

 別にキーボードとマウスはなくても、画面タッチで操作できますが、画面が小さすぎる、、

*操作メモ(画像)*

(タイピング慣れてないから操作が難しいよー😓)
ほかにも、
地味に大事な、「やり直し」:ctrl + z「やり直しのやり直し」:ctrl + Shift + z が、ありました😀コントローラ🎮の操作は、慣れて覚えましょう🙏

 では、やっていきます♪

まず、プロジェクト📽️📁を作ります。

・プロジェクトの新規追加をおす
・名前を入力!「SUPER.MARIO」
・「このプロジェクトを使用」をおす❗

・プロジェクト情報の編集をおして、わかりやすくするために、アイコンを描こう!

 *描き方(画像)*
アイコンかけた!

いざプログラム画面へ!!

まず、トップメニューに戻って、「プログラムを作る」を押します🙋‍♂️
そしたら、DIRECTモード📺という画面になります。(コンソール画面とも?)

「ダイレクトモード」とは、直接命令コマンドをあたえるモード。例えば、「RUN」(かっこは書かない)でプログラムを実行したり、0からプログラム作る時に他のが書いてあって消したかったら、「NEW」で消したり🫥、セーブしたり、指定した行番号に行ったり…などっ!

プログラムは、「EDITモード」に書きます。📝
🔘Xボタンや⌨️F4で切り替えます〜〜





いよいよプログラムをかいていこう🤩!

(プチコンは、プログラムは大文字で書くのが定番!!)

 まず、とりあえず一番に書く定番の命令、「ACLS」(画面の初期化)をかく。
 SPSET(スプライトセット)命令でキャラクター🏃‍♂️‍➡️を表示します。
 SPOFS(スプライトオフセット)で、キャラクターの場所(XとY)を指定します!!

GCLSグラフィッククリアスクリーンは、指定した色で(水色🩵)で塗りつぶし、背景にする!

*こんな感じ*


*実行結果*



SPSETは、色々使い方や書き方があります。
「SPSET 0,498
 SPOFS 0,X,Y」
とか。他はわかりません〜😔


ループを書いて、うごかそう!!

*実行すると、キャラが下に落ちていく〜*

*解説?*
Gは、重力の変数です。🙇
mario_xと、mario_yも変数です!(ここから、大文字で入力するのめんどくさいよ🤧)

変数とは、値を入れて置ける入れ物📦🎁🗃️です。
(変数の説明いつ聞いても意味わからないなぁ🤔イコール(🟰 =)0という意味ではないというのはなんとなく分かった。まぁ変わる数です!!)

そして、ループするごとに、gが0.1ずつ増えていってます。
それがマリオYに足されます。spofsで座標を動かします。


vsyncブイシンクは、垂直同期といって1/60秒待つ❓わからないけど、これをつけなきゃ速すぎてとても操作が出来ません。x)
🟢緑のもじは、後から見る時などわかりやすくするメモです「’」(アポストロフィ)。


キャラクターを左右に動かそう!!⬅️🏃‍♂️➡️

*プログラム


*左右移動できた!

*追加した所を解説!*

varで、初めに変数を定義しました🙂べつに書かなくてもいいのですが、、一応。


if mario_y>400 then beep 36 end

if~then~条件分岐のイフゼン命令です。
「もしも〜🤔💭◯◯なら〜🫵😇◯◯を実行やる❗」という感じ?
「もしも、マリオY座標が、400をこえると」、「音を鳴らして終了する」

と、マリオyが400超えて落ちたら、終わるようにしました🌠(仮)なので後で数字を調整する!)

beepという命令は効果音🎶をならす命令です🎷。今は、適当に決めた36番の効果音を鳴らしておきます。
end(エンド)はその名の通り、終わります。プログラムを終了する命令です!

十字ボタン🔘で左右🏃‍♂️操作!!

←まず左移動。←←

if button(0,#b_lleft) then mario_x = mario_x-2

[もしも、◀️左ボタンがおされたら、マリオXを2つずつ減らす🏃‍♂️]

button(ボタン)命令は、ボタン入力に使います。🔘🔘
(かっこ)のなかの、0は、コントローラー🆔で🎮を2台以上使うときにつかう❓
#B_LLEFTはyボタン🔘のことです!これは、ボタン🆔です!

*#B_は省略*

画像のように、左側はL⬅️が入って、右側はR➡️が入ってます

→そして右移動。→→コピー&ペーストで、「+とー」、「leftとright」を書き換えるといいです✨

if button(0,#b_lright) then mario_x = mario_x+2



🌱ここでちょっとひとやすみ✨SAVEセーブの仕方☺️

ファイル📁名は、「MAIN.PRG」にして下さい‼️(メイン.プロジェクト)



🫡セーブ💽方法は、
DIRECTモードで、save”main.prg”と入力⭕️
それか、
ctrl(コントロールキー) + s でできます!ちなみにロードは、+ Lです。

*合ってるか注意⚠️別のプロジェクトになっている*

*他のプログラム作ってたりしてると、「使用するプロジェクト⚙️」が変わってたりするのでよく確認しよう🙋‍♀️


LOADの仕方

①まず、作品を実行。これで読み込めました😃
(プラス➕ボタンかF5で終わって、
Bボタン連打かescで、プログラム画面へ!!)

「main.prg」が実行される




定数をつかおう😐

*マリオの移動速度は、2*

「mario_speed=2」これは、マリオの移動速度を2と、あらかじめ定義しています。
定数とは、最初に決めておいた、後から変更できない数です?(説明会ってるのかわからない😑)

 例えばこれ*画像↑*なら、
マリオスピードが2になってるけど、4とか333とかに変えたい❗️となったとき、「2行以上プログラムかえるのめんどくさい😵‍💫」という風になるので定数を使います。つまり長〜〜いプログラム書く人がよく使います❤️

const という命令もあります。#をつける事によって、グレー色🩶になり、定数か、変数か見分けがつきます。🤗

今更な、
床の当たり判定___________

IF MARIO_Y>176 THEN MARIO_Y=176:G=0
  • マリオYが、176座標超えないようにしてます。(176は、⬜︎🧱多分11マス分)

  • :(コロン)を使って区切れば、1行に何個も書けます🤗

  • g=0は、マリオYに足されてるので、つまりマリオYが無限♾️に増え続け、

IF MARIO_Y>400 THEN BEEP 36 END

↑この行のせいで、何秒かたつとマリオYが400超えて、終わってしまう😔ので😃g=0の、登場!!。。。


あれ、、?🧐「スーパーマリオを作りたい」というタイトル記事だけど、どこまで再現するのかを、決めてない。💬マリオメーカーみたいにするのか、1−1再現するのか、

慣性を付けたい!🙋‍♂️💨。初代マリオみたいにすべるように

これブロックの当たり判定が難しくなりそうな?知らんけど😼ロマンだ⭐️ってことで、AIに書いてもらった!🖥️🤖💬
変数名の英語わからん😔⌨️
摩擦f、加速度A(vは、みんなが何かよく使ってるので、真似しただけ)
英単語わからないと、プログラミングは、不便です👿‼️

aiに

✍️*画像*分からないところは、スピードが自由に変更出来ないところと、
変数vとsの意味。




↑↑はとりあえず置いといて、🥱気分転換に🏃‍♂️‍➡️マリオのドット絵を描いて行こう〜〜🤩

おえかき
  1. ⌨️f11?押して「GAHAKU」を開きます!

  2. 今までこのキャラクター使ってたので、そこに書きます🎨

  3. 使い方は、慣れて下さい🙏!!!!斜線が入ったカラーが、透明になります🫥ボタン操作で描く方が描きやすいです🤨多分。

マリオのドットできたー

(マリオのドット絵って、12×16だったんだ?!まあえっか😆ジャンプのときは、16×16だし!!)

⒌セーブします。(右上↗️の所)

容量が…とても大きい。でも初心者の内は動けりゃ🆗(使わない絵を全部消すといいです!!)


絵のロード!

⒍ LOADGで、描いたスプライトを読み込みます😷これで操作キャラ🏃‍♀️‍➡️がマリオになった。

(余談ですが、grpは、グラフィックのことです。なんか、prgとかpgr、rpg、rgbとかややこしくないですか?🙃🙁☹️🙀🗯️。)

らくがき

ブロックも描こう!🧱

✨🌺🌼後でレンガブロックにしとこう😉。

やっぱ、絵の容量少なくする!😝


g3を押す。
地面ブロック⬜︎をxが、1024のところに描く🎨
(ここで間違えて戻ると、描いてたやつが消えることがあるので注意⚠️)
絵の番号を定義した😃キャラの絵498番号から、0番にしました。&HEのついてるやつは、地面ブロック⬜︎の番号。
できました。size 50000以下です!





#1では、後………
ジャンプ、ブロック判定、一面マップ、歩くアニメーション、メロディ(MML)、マリオ絵、予定。
#2は、スクロールする予定

いいなと思ったら応援しよう!