![見出し画像](https://assets.st-note.com/production/uploads/images/145003843/rectangle_large_type_2_2d981b379e66e6f5ad6df89888982416.png?width=1200)
(まだ途中7.14更新)[プチコン4]【プログラミング】スーパーマリオを作りたい😆#1 〜ブロックとキャラクターの当たり判定まで〜
はじめまして。✨〜私のプログラミング歴〜
やった事あるプログラミング🧑💻ソフトは、『3DSの、プチコン3号』と、『はじめてゲームプログラミング』と、『プチコン4』です。🎮
なんと↑(計)プレイ時間1400時間もやっていた⁉️😮でも遊ぶ専門でした。初心者🔰です…
(ちなみに、一番初めのキッカケ💫は、その頃プログラミングという言葉を知らなくて、なんとなく「ゲームを作るゲーム」と🔍検索してみたことがきっかけ!!)
でも、最近は作りたいものがないので全然やってませんでした。だけど作りたいものは、あるにはある!けど、技術がなくて作れないもどかしさ…(どうぶつの森✖️マイクラ、テラリアとか)
😩でもマリオ🎮なら作れそうと思った!しかも、面白そうだし!!(テトリス🟪もいいなと思ったけど難しそう…)
ずっと前にも、作ろうとしたけれど、ブロック🟧とキャラクター🏃♂️➡️の当たり判定わからなくてやめちゃった😔
だから、リベンジだツ🔥
2024
この記事は誰のために書いてるのか。それは筆者自分自身のためです。全くしらない人にわかりやすくつたえる練習だ😚
頑張って作っていきたいと思います😆(行き当たりばったりだけど!)
🗒️不定期更新。なので、完成まで何年かかるのか😡?
(著作権がわからない。❓スーパーマリオブラザーズとか、「noto」に書いていいのか。)
プチコン4とは?
『ニンテンドースイッチ』でプログラミングが出来るソフトです!(体験版もあります!)
「SmileBASIC」というプログラミング言語です
なんだかゲーム制作や、学習用に開発された、やさしめの言語らしい??です。
キーボード⌨️&マウス🖱️はあると便利です⭐️(USBキーボードが推奨されてます。無線は、USBレシーバーあるやつなら、できる!)
別にキーボードとマウスはなくても、画面タッチで操作できますが、画面が小さすぎる、、
![](https://assets.st-note.com/production/uploads/images/144979462/picture_pc_9ebf18d6c94ec341b5f5116bbad748d8.png?width=1200)
(タイピング慣れてないから操作が難しいよー😓)
ほかにも、
地味に大事な、「やり直し」:ctrl + z「やり直しのやり直し」:ctrl + Shift + z が、ありました😀コントローラ🎮の操作は、慣れて覚えましょう🙏
では、やっていきます♪
まず、プロジェクト📽️📁を作ります。
![](https://assets.st-note.com/production/uploads/images/144979670/picture_pc_e8bd1be91c38b502a1a80c32a2da7cc0.png?width=1200)
・プロジェクトの新規追加をおす
・名前を入力!「SUPER.MARIO」
・「このプロジェクトを使用」をおす❗
・プロジェクト情報の編集をおして、わかりやすくするために、アイコンを描こう!
![](https://assets.st-note.com/production/uploads/images/144981339/picture_pc_a63b2ca56f928c1e79935d0c99a8d62c.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/144981901/picture_pc_da96fb4688527a58f6a665ccfef4204e.png?width=1200)
いざプログラム画面へ!!
まず、トップメニューに戻って、「プログラムを作る」を押します🙋♂️
そしたら、DIRECTモード📺という画面になります。(コンソール画面とも?)
「ダイレクトモード」とは、直接命令コマンドをあたえるモード。例えば、「RUN」(かっこは書かない)でプログラムを実行したり、0からプログラム作る時に他のが書いてあって消したかったら、「NEW」で消したり🫥、セーブしたり、指定した行番号に行ったり…などっ!
プログラムは、「EDITモード」に書きます。📝
🔘Xボタンや⌨️F4で切り替えます〜〜
いよいよプログラムをかいていこう🤩!
(プチコンは、プログラムは大文字で書くのが定番!!)
まず、とりあえず一番に書く定番の命令、「ACLS」(画面の初期化)をかく。
SPSET(スプライトセット)命令でキャラクター🏃♂️➡️を表示します。
SPOFS(スプライトオフセット)で、キャラクターの場所(XとY)を指定します!!
GCLSは、指定した色で(水色🩵)で塗りつぶし、背景にする!
![](https://assets.st-note.com/production/uploads/images/144995794/picture_pc_b9fcf618e38c26ce504705c0b3c5ae2f.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/144997204/picture_pc_e24a18336b3c4b0d72f85dbf080e7e50.png?width=1200)
SPSETは、色々使い方や書き方があります。
「SPSET 0,498
SPOFS 0,X,Y」
とか。他はわかりません〜😔
ループを書いて、うごかそう!!
![](https://assets.st-note.com/production/uploads/images/144997867/picture_pc_673e69036c70ba6e50a074f855cdb76e.png?width=1200)
*解説?*
Gは、重力の変数です。🙇
mario_xと、mario_yも変数です!(ここから、大文字で入力するのめんどくさいよ🤧)
変数とは、値を入れて置ける入れ物📦🎁🗃️です。
(変数の説明いつ聞いても意味わからないなぁ🤔イコール(🟰 =)0という意味ではないというのはなんとなく分かった。まぁ変わる数です!!)
そして、ループするごとに、gが0.1ずつ増えていってます。
それがマリオYに足されます。spofsで座標を動かします。
vsyncは、垂直同期といって1/60秒待つ❓わからないけど、これをつけなきゃ速すぎてとても操作が出来ません。x)
🟢緑のもじは、後から見る時などわかりやすくするメモです「’」(アポストロフィ)。
キャラクターを左右に動かそう!!⬅️🏃♂️➡️
![](https://assets.st-note.com/production/uploads/images/145010175/picture_pc_024ae19b80b0e3e0070f4d991b1bc044.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/145010365/picture_pc_9870453cdb6f631e07b8379c32f60d57.png?width=1200)
*追加した所を解説!*
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ボタン🔘のことです!これは、ボタン🆔です!
![](https://assets.st-note.com/production/uploads/images/146518896/picture_pc_1b04060e0c76d396144a46af77b9e3dd.png?width=1200)
画像のように、左側は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です。
![](https://assets.st-note.com/production/uploads/images/146511115/picture_pc_c7e8d95f336c26ff050f0f802ab6dcc9.png?width=1200)
*他のプログラム作ってたりしてると、「使用するプロジェクト⚙️」が変わってたりするのでよく確認しよう🙋♀️
LOADの仕方
①まず、作品を実行。これで読み込めました😃
(プラス➕ボタンかF5で終わって、
Bボタン連打かescで、プログラム画面へ!!)
![](https://assets.st-note.com/production/uploads/images/146511980/picture_pc_9ed1d4a3c85120d381900be7fa9f1896.png?width=1200)
定数をつかおう😐
![](https://assets.st-note.com/production/uploads/images/146520774/picture_pc_00b7d83d621996747d30d079edb27c17.png?width=1200)
「mario_speed=2」これは、マリオの移動速度を2と、あらかじめ定義しています。
定数とは、最初に決めておいた、後から変更できない数です?(説明会ってるのかわからない😑)
例えばこれ*画像↑*なら、
マリオスピードが2になってるけど、4とか333とかに変えたい❗️となったとき、「2行以上プログラムかえるのめんどくさい😵💫」という風になるので定数を使います。つまり長〜〜いプログラム書く人がよく使います❤️
![](https://assets.st-note.com/production/uploads/images/146520612/picture_pc_3f42fcf26c5ad06d044a6124c142e40c.png?width=1200)
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は、みんなが何かよく使ってるので、真似しただけ)
英単語わからないと、プログラミングは、不便です👿‼️
![](https://assets.st-note.com/production/uploads/images/147274833/picture_pc_5b3a340cddf011e9671c3c61da683384.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/147274834/picture_pc_a9ef78e196db266ca8b80d5c28412b57.png?width=1200)
#1では、後………
ジャンプ、ブロック判定、一面マップ、歩くアニメーション、メロディ(MML)、マリオ絵、予定。
#2は、スクロールする予定
この記事が気に入ったらサポートをしてみませんか?