fumix

主にプログラミングで遊んだことを書きます。 土曜日の実験室。

fumix

主にプログラミングで遊んだことを書きます。 土曜日の実験室。

マガジン

  • PICO-8でブロック崩しを作ろう

    ピコピコなゲームエンジン、PICO-8でブロック崩しを作る連載(?)

  • PICO-8で遊ぼう

    ピコピコなゲームエンジン、PICO-8で遊んでる記録

記事一覧

2023年、良かったのはXG

2023年は私にとってKPOP元年となってしまいました。 最初はLE SSERAFIM最初は何気なくyoutubeを眺めていたら出てきた動画にはまってしまった LE SSERAFIM(ルセファフィム…

fumix
6か月前
5

PICO-8でブロック崩しを作ろう(色んな種類のブロック

ボールがあたれば壊れるだけのブロックだけではつまらないので、色んな種類のブロックが出せるようにします。 とりあえず機能はおいておいて、色の違うのブロックが配置で…

fumix
11か月前

PICO-8でブロック崩しを作ろう(レベルの実装

ブロックを自由に配置できるようになったので次はレベル(ステージ)の実装をします。 _init()グローバル変数levelを空にして、新たにlevelnum(現在のステージ)とテーブ…

fumix
1年前
1

PICO-8でブロック崩しを作ろう(ブロックパターンの実装

縦横に並べているだけだったブロックを自由な位置に配置できるようにします。 _init()_init()にグローバル変数levelを定義します。 パターンの意味は次のようになります。…

fumix
1年前

PICO-8でブロック崩しを作ろう(コンボチェインの実装

今の状態のブロック崩しでは、ブロックを一つ消す毎に+10点がSCOREに加算されるだけなので、プレイヤーの上手下手に関わらず点数が一律のままで面白くありません。 そこで…

fumix
1年前

PICO-8でブロック崩しを作ろう(ボールの反射角度をコントールする

今回はパドルの動きによって反射するボールの角度が変わるような実装をしてみます。 実際の物理法則を正確にシミュレーションする必要はなくそれっぽく動いてくれればいい…

fumix
1年前

PICO-8でブロック崩しを作ろう(スティッキーパドルの実装

今の実装ではスタート時やリプレイ時には、ボールは決まった場所からスタートしますが、それをパドルの上にボールをくっつけて、パドルの動きに合わせて左右に動かすことが…

fumix
1年前

PICO-8でブロック崩しを作ろう(ブロックを追加する

ブロック崩しを作ろうというタイトルにしながら連載5回目にしてようやっとブロック出現です(#10,#11)。 startgame() / buildbricks()startgame()内でブロック一つ分の幅…

fumix
1年前

PICO-8でブロック崩しを作ろう(スタート/ゲームオーバー/スコア/残機の追加

以前やったことと被る内容もありますが、スタート/ゲームメイン/ゲームオーバーのゲームの遷移状態とスコアや残機を追加することでゲームとして(一応)成立する形にします…

fumix
1年前

PICO-8でブロック崩しを作ろう(パドルでボールを反射させよう

今回はパドルでボールを反射させてみます。 動画の#6,#7,#8の内容なのですが、動作が気に入らないので書き換えています。※今後の内容次第では再度書き換えるかも パドル…

fumix
1年前

PICO-8でブロック崩しを作ろう(動くパドルを作る

今回は動くパドルを作ってみます。 パドルの表示パドルを動かす当然表示されただけで動かせませんので_update()に矢印キーの左右btn(0),btn(1)でパドルが動かせるようなコ…

fumix
1年前

PICO-8でブロック崩しを作ろう(効果音を鳴らす

PICO-8で遊ぼうでPICO-8で色々と遊んだ記録をnoteでつけていますが、毎回テーマを考えるのが大変で執筆ペースが上がりません。 そこで、youtubeにあるPICO-8のチュートリア…

fumix
1年前

PICO-8で遊ぼう(スプライトをいっぱい出したいんじゃ編

表題のとおりです。 まずは単純にいっぱいスプライトを出すプログラムを書きます。 mainballui / bg / spriteRUN実行すると緑のボールが50個、ランダムに等速直線運動し壁…

fumix
1年前
2

PICO-8で遊ぼう(chatGPTでプログラミングしてみる編

プログラミングというより、もはや全部作ってもらってる感じ…。 確実にバカになっていく自分がいます。 ボール同士の衝突のアルゴリズム教えて質量は1として書き直してlu…

fumix
1年前
3

Raspberry Pi 4をUSBブートさせる

Raspberry Pi(ラズパイ)は通常SDカードにOS入れて起動しますが、SDカードは割と壊れやすく長期利用には適さないとのことで、USBに繋いだUSBメモリやらSSDから起動するUSB…

fumix
1年前
2

BM40V2(自作キーボード)の設定

先日、自作キーボードを組み立てたのですが設定に手間取ったので今後忘れないようにメモしときます。 自作キーボードと言っても、出来合いのPCBに好きなキースイッチ、キ…

fumix
1年前
2023年、良かったのはXG

2023年、良かったのはXG

2023年は私にとってKPOP元年となってしまいました。

最初はLE SSERAFIM最初は何気なくyoutubeを眺めていたら出てきた動画にはまってしまった
LE SSERAFIM(ルセファフィム)から。
KPOPアイドルというより「面白い女たち」として認識。

すぐにファンクラブに入りツアーチケットの抽選に申し込み、名古屋まで25000円というVIPチケットを買ってライブを見にいったり

もっとみる
PICO-8でブロック崩しを作ろう(色んな種類のブロック

PICO-8でブロック崩しを作ろう(色んな種類のブロック

ボールがあたれば壊れるだけのブロックだけではつまらないので、色んな種類のブロックが出せるようにします。
とりあえず機能はおいておいて、色の違うのブロックが配置できるようになるところまで実装します。

ブロックの種類ブロックの種類は以下のものを想定します。
B:normal brick(通常ブロック
X:empty space(空
/:new line(改行
I:indestructable bri

もっとみる
PICO-8でブロック崩しを作ろう(レベルの実装

PICO-8でブロック崩しを作ろう(レベルの実装

ブロックを自由に配置できるようになったので次はレベル(ステージ)の実装をします。

_init()グローバル変数levelを空にして、新たにlevelnum(現在のステージ)とテーブルlevelsを定義します。levelsにとりあえず3ステージ分のブロックを配置しておきます。デバッグが楽になるように少なめブロックにしてステージクリアを容易にしておきます笑

_update60(),_draw()_

もっとみる
PICO-8でブロック崩しを作ろう(ブロックパターンの実装

PICO-8でブロック崩しを作ろう(ブロックパターンの実装

縦横に並べているだけだったブロックを自由な位置に配置できるようにします。

_init()_init()にグローバル変数levelを定義します。
パターンの意味は次のようになります。

B:ブロック

X:空白

/:改行(ブロック・空白の合計が11個を超えた場合も改行)

1〜9:直前のB or Xを数値分横に並べる。

※ブロックが5個連続で並び空白が6個並んでるのが1段目でその下に空白が5個

もっとみる
PICO-8でブロック崩しを作ろう(コンボチェインの実装

PICO-8でブロック崩しを作ろう(コンボチェインの実装

今の状態のブロック崩しでは、ブロックを一つ消す毎に+10点がSCOREに加算されるだけなので、プレイヤーの上手下手に関わらず点数が一律のままで面白くありません。
そこでパドルにボールが当たるまでにブロックを連続で消すことができれば加算されるポイントが2倍、3倍、4倍…と増えていくコンボチェインの実装をします。

serveball()--check if ball hit pad--check i

もっとみる
PICO-8でブロック崩しを作ろう(ボールの反射角度をコントールする

PICO-8でブロック崩しを作ろう(ボールの反射角度をコントールする

今回はパドルの動きによって反射するボールの角度が変わるような実装をしてみます。

実際の物理法則を正確にシミュレーションする必要はなくそれっぽく動いてくれればいいので…ボールとパドルがぶつかって反射処理をおこなう際に、

パドルの動き(速度)とボールの動き(速度)が向かい合っている(相対)場合は反射するボールの角度が高くなる

パドルの動き(速度)とボールの動き(速度)が同じ方向(並走)の場合は反

もっとみる
PICO-8でブロック崩しを作ろう(スティッキーパドルの実装

PICO-8でブロック崩しを作ろう(スティッキーパドルの実装

今の実装ではスタート時やリプレイ時には、ボールは決まった場所からスタートしますが、それをパドルの上にボールをくっつけて、パドルの動きに合わせて左右に動かすことができるようにします(#13)。

startgame()startgame()でstickyフラグを定義します。

update_game()xボタンを押すとstickyフラグをfalseにします。
ボールの動きの処理のところはsticky

もっとみる
PICO-8でブロック崩しを作ろう(ブロックを追加する

PICO-8でブロック崩しを作ろう(ブロックを追加する

ブロック崩しを作ろうというタイトルにしながら連載5回目にしてようやっとブロック出現です(#10,#11)。

startgame() / buildbricks()startgame()内でブロック一つ分の幅と高さを定義します。
buildbricks()では設置するブロックのx,y,v(表示フラグ)をテーブルで定義します。横11、縦5の55個のブロックをここでは定義しています。

draw_ga

もっとみる
PICO-8でブロック崩しを作ろう(スタート/ゲームオーバー/スコア/残機の追加

PICO-8でブロック崩しを作ろう(スタート/ゲームオーバー/スコア/残機の追加

以前やったことと被る内容もありますが、スタート/ゲームメイン/ゲームオーバーのゲームの遷移状態とスコアや残機を追加することでゲームとして(一応)成立する形にします。

_init() / _update60() / _draw()ボールやパドルの制御用のグローバル変数を定義していた_init()を状態遷移を表すグローバル変数modeの定義だけにします。
ゲームのメイン処理をおこなっていた_upda

もっとみる
PICO-8でブロック崩しを作ろう(パドルでボールを反射させよう

PICO-8でブロック崩しを作ろう(パドルでボールを反射させよう

今回はパドルでボールを反射させてみます。
動画の#6,#7,#8の内容なのですが、動作が気に入らないので書き換えています。※今後の内容次第では再度書き換えるかも

パドルとボールの衝突判定_update()にball_box()を追加してパドルとボールの衝突判定をおこないます。衝突した場合はballのy方向の速度を逆向きにすることで反射する動作になります。

パドルにボールが反射するように動作して

もっとみる
PICO-8でブロック崩しを作ろう(動くパドルを作る

PICO-8でブロック崩しを作ろう(動くパドルを作る

今回は動くパドルを作ってみます。

パドルの表示パドルを動かす当然表示されただけで動かせませんので_update()に矢印キーの左右btn(0),btn(1)でパドルが動かせるようなコードを追加します。

できたといえばできたのですが、パドルの動きが直線的で硬いので、もうちょっと色気ある動きにしてみたいと思います。

パドルの動きに色気(加速度)をつけるbuttpressというフラグを用意①して左

もっとみる
PICO-8でブロック崩しを作ろう(効果音を鳴らす

PICO-8でブロック崩しを作ろう(効果音を鳴らす

PICO-8で遊ぼうでPICO-8で色々と遊んだ記録をnoteでつけていますが、毎回テーマを考えるのが大変で執筆ペースが上がりません。
そこで、youtubeにあるPICO-8のチュートリアル動画を見ながら実際にゲームを組んでみた記をしてみることにします。
題材はLazy DevsチャンネルにあるPico-8 Tutorial - Breakoutにしたいと思います。

最初の方はPICO-8自体

もっとみる
PICO-8で遊ぼう(スプライトをいっぱい出したいんじゃ編

PICO-8で遊ぼう(スプライトをいっぱい出したいんじゃ編

表題のとおりです。
まずは単純にいっぱいスプライトを出すプログラムを書きます。

mainballui / bg / spriteRUN実行すると緑のボールが50個、ランダムに等速直線運動し壁で反射します。
zキー(○ボタン)を押すとボールが増えます。

STATS(ctrl+p)を表示して動作させていますが、ボールの動作が単純ですので1800個くらいまでなら30FPSを維持しています。

ボール

もっとみる
PICO-8で遊ぼう(chatGPTでプログラミングしてみる編

PICO-8で遊ぼう(chatGPTでプログラミングしてみる編

プログラミングというより、もはや全部作ってもらってる感じ…。
確実にバカになっていく自分がいます。

ボール同士の衝突のアルゴリズム教えて質量は1として書き直してluaで書き直して速度を一定に保ちたいこれをメソッドにしてありがとうばっちりです。でもボール同士が衝突したときにくっついてしまうことがあるので解消したい。chatGPTすげえ

Raspberry Pi 4をUSBブートさせる

Raspberry Pi 4をUSBブートさせる

Raspberry Pi(ラズパイ)は通常SDカードにOS入れて起動しますが、SDカードは割と壊れやすく長期利用には適さないとのことで、USBに繋いだUSBメモリやらSSDから起動するUSBブートを試しました。

上記の外付けSSDでUSBブートしてみます。しかしSSDって1TBでも1万円しないんですねえ。ラズパイにそんなに大容量は必要ないかな?と思って250GBのにしましたが…。

作業手順以下

もっとみる
BM40V2(自作キーボード)の設定

BM40V2(自作キーボード)の設定

先日、自作キーボードを組み立てたのですが設定に手間取ったので今後忘れないようにメモしときます。

自作キーボードと言っても、出来合いのPCBに好きなキースイッチ、キートップ等を組み付けただけで特にハンダ付けも必要ないので、組み立てだけならば10分くらいで出来ます。

購入したキーボードはこれ今回買ったPCBは上記した一体型格子配列の40%キーボードのBM40です。
40%キーボードとはキーの数が4

もっとみる