パワーアップシューティングって格好良かったよね。シングルだった自機の弾が、ダブルになったり、3Wayになったり。
あと、連射できると嬉しい。
そういうのがやりたかったので、そういう動きをするプログラムを必死で書いた。
ファミコンのスプライト(キャラクターを描画する機能)は、画面端にいくと反対側から出てきちゃうので、どこまでいったら画面から消すか。
連射ってことは、画面上に自機の弾が沢山でてこなくちゃいけない。どうやって複数の弾のデータを管理すればいいのか。
画面に3発まで撃てるようにしたんんだけど、チュン!チュン!チュン!………………チュン!チュン!チュン!…………というリズムになる。画面上に貼り付くとすごい連射できるけど、下の方にいると、消えるまで続きが撃てないw
データ構造とアルゴリズム。予想外の動きと、開き直って仕様にしちゃう。バグったらそれはバグ技w
ファミリーベーシック、整数演算しかできないのね。
2Dシューティングゲームつくろうとして、敵が自機に向かって弾を撃ってくるようにしたいんだけど、その計算がわからない! どうやって斜めに移動させればいいの?
そこで、縦と横のより大きい方を1ずつ動かして、小さい方は、条件を満たしたら1動かすことにした。
弾の初期位置はEX=0, EY=0
自機はMX=100, MY=150
その差、XX=100, YY=150
EYは、ループ毎に1ずつ増やす。EXは、カウンターにXXを足し続けて、条件を満たすまで増やさない。
合計がYYを超えたらEXを1増やしてカウンターからYYを引く。
そうやって、斜めの軌跡を計算することにした。
これで、ちゃんと弾が斜めに飛んでくる。速度がおかしいんだけど、そこはご愛敬w
そうやって、問題を解決する仕組みを考えるということを学習した。アルゴリズムは楽しい。三角関数とかはまだ知らない。小学4年生の頃の話。
DTP鯖管
さんがブースト
DTP鯖管
さんがブースト
@ars42525 ウチのはnoellabo/mastodonにpushしてからマージなので作業ブランチはそっちから。ほったらかしてあるから追おうと思えば追えるけど、まとまってない。BOSSのを取り込み直すつもりでまだ放置中。
DTP鯖管
さんがブースト
@hanage999 数百数千のインスタンスから一斉にアクセスあると、されたほう死んじゃうので……。 #dtp
Mastodonの作りとして、クライアントやリモートから取得した情報をチェックして変換したものを自前でキャッシュ・保存して、外部と切り離して扱うよね。
外部リンクから取得するプレビューとかもそう。閲覧するタイミングじゃなくて、取得したタイミングで生成する方式をとっている。
トゥートはもちろんそうで、そのコピーを保持する。
画像も、いちいちImageMagickでプロセスして、取得したままのものは使わない。
外部リンクは、アクセスするタイミングに気を遣っている。閲覧されたタイミングの情報を、事前に取得しておくことで伝わらないようにしている。(また、負荷対策としてインスタンス毎にランダムにタイミングをずらしている:1〜59秒)
インスタンスが情報をキャッシュする機能を持たず、あらゆる情報をリモートから取得する作り(普通のWebはこっち)と比較すると、インスタンスというものの特徴や意義が浮かび上がってくるのでは。
DTP鯖管
さんがブースト
noteを書きました。
『最近のマストドンいろいろ』
https://note.mu/gingadon/n/nc73a3bab5d6d
ざなくさんの記事を引用させていただきました。
(あと、ダダさん発のじゃがいも心地にも触れさせていただきました。)
空と緑が綺麗ですね。
さて、こちらのDTP鯖の画像とゴロツキ鯖の画像は、もとは同じものをアップロードしていますが、サイズと圧縮率が違っております。
ドン・ゴロツキではどのぐらい画像を小さくして容量を節約しているか、おわかりいただけるかと思います。 #dtp
QT: https://gorone.xyz/@noellabo/100850233800050826
DTP鯖管
さんがブースト
DTP・デザイン・印刷のテーマサーバ DTP-Mstdn.jpやってます。
#Illustrator #スクリーン印刷 #インクジェット #カラーマネジメント #運営
#searchable_by_all_users