内容へ移動
tic-80 development wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
lua:managerclass
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
===== 概要 ===== * Managerクラスを作りたい。 * 余談ですが、これいつも自分が作るゲームフレームワークをLuaに書き直した形です。 * ガバッと配列を確保して作る感じですね。 * 種類ごとにマネージャクラスを作る考えです。 * C言語ならポインタでリンクリストっぽくして作るとかはできるし無駄がないんですが、管理が煩雑になるのと、当たり判定がないオブジェクトが存在するんだからそういうオブジェクトのための構造も用意しておくほうが無駄がないという考えでこうなってます。 ===== 実装サンプル ===== MITライセンスにしておきます。 chr ={ cnt=400, x={}, y={}, dx={}, dy={}, life={}, init = function(self) for i=1,self.cnt do self.x[#self.x+1]=0 self.y[#self.y+1]=0 self.dx[#self.dx+1]=0 self.dy[#self.dy+1]=0 self.life[#self.life+1]=0 end end, set = function(self) for i=1,self.cnt do if self.life[i] == 0 then self.x[i]=120 self.y[i]=68 self.dx[i] = math.random(-1000,1000)*0.0001 self.dy[i] = math.random(-1000,1000)*0.0001 self.life[i]=1 break end end end, move = function(self) for i=1,self.cnt do if self.life[i] > 0 then self.x[i]=self.x[i]+self.dx[i] self.y[i]=self.y[i]+self.dy[i] end end end, draw = function(self) for i=1,self.cnt do if self.life[i] > 0 then spr(1,self.x[i],self.y[i], 14,1,0,0,1,1) end end end } t=0 function BOOT() chr:init() chr:set() end function TIC() cls(13) chr:move() chr:draw() t=t+1 end
lua/managerclass.txt
· 最終更新:
2025/07/08 15:58
by
machiaworx
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ