Difference between revisions of "tiny-ecs (日本語)"
(Created page with "== Lua 用のエンティティ・コンポーネントシステム == Tiny-ecs は単純、柔軟、実用的な Lua 用のエンティティ・コンポーネントシス...") |
m (Adding keyword.) |
||
Line 48: | Line 48: | ||
{{#set:LOVE Version=Any}} | {{#set:LOVE Version=Any}} | ||
{{#set:Description= Lua 用のエンティティ・コンポーネントシステム}} | {{#set:Description= Lua 用のエンティティ・コンポーネントシステム}} | ||
+ | {{#set:Keyword=Framework}} | ||
[[Category:Libraries (日本語)]] | [[Category:Libraries (日本語)]] |
Revision as of 23:20, 26 March 2017
Lua 用のエンティティ・コンポーネントシステム
Tiny-ecs は単純、柔軟、実用的な Lua 用のエンティティ・コンポーネントシステムです。 Lua の自然なタブラー(表)のために、エンティティ・コンポーネントシステムは大規模かつ複雑なシステムの模擬に対しては自然な選択です。 ゲーム・プログラミングにおいて ECS はゲームのループを簡素化するための素晴らしい方法です。エンティティ・コンポーネントシステムに関する詳しい解説は、こちらに基礎情報があります:
tiny-ecs はシステムとエンティティに対してメタテーブルを使用しないため Lua のオブジェクト指向プログラミングにて動作します。 この意味はシステムおよびエンティティをサブクラス化することができ、 tiny-ecs にて既存の Lua クラス・フレームワークを使用するため、問題はありません。
用例:
local tiny = require("tiny")
local talkingSystem = tiny.processingSystem()
talkingSystem.filter = tiny.requireAll("name", "mass", "phrase")
function talkingSystem:process(e, dt)
e.mass = e.mass + dt * 3
print(e.name .. ", who weighs " .. e.mass .. " pounds, says, \"" .. e.phrase .. "\"")
end
local joe = {
name = "Joe",
phrase = "I'm a plumber.",
mass = 150,
hairColor = "brown"
}
local world = tiny.world(talkingSystem, joe)
for i = 1, 20 do
world:update(1)
end