«前の日記(2010年 08月17日(Tue)) 最新 次の日記(2010年 08月22日(Sun))» 編集

日記のような何か

2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|08|09|10|11|12|
2020|01|02|03|04|06|07|08|09|10|11|12|
2021|01|02|03|04|05|07|08|10|11|12|
2022|01|02|03|04|05|06|07|08|10|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|09|10|11|

ようこそいらっしゃいました。
あなたは今日人目、合計人目のお客様です(ちなみに昨日は人のお客様がいらっしゃいました)。
よろしければツッコミに足跡等を残していって下さいな。

My status ← skypeやってます。


2010年 08月19日(Thu) [長年日記]

_ [DXRuby][ruby][プログラム]【CGSS】CGSSメモ

以前Card Games Support Systemsと銘打ってカードゲーム用のフレームワークを作ろうとしていたのだけど、実はとてもゆっくりながら進んでいたりする。

そんなCGSSの使い方メモ。といっても現物はまだ私の手元にしか無いし、全然未完成だし、そもそも何書いてるかすら不明だろうと思われるので、なんか書いてるなーと思っておいてください。

configファイルの書き方

基本内部DSL。

[オブジェクトの種類] [オブジェクト名] do
  [コマンド]
end

といった具合に書く。

  • オブジェクトの種類
    • 現状window, fieldの2種
  • オブジェクト名
    • 省略可。名前はSymbolか文字列で。:hogeとか'foo'みたいに。
    • 名前を付けると$hoge, $fooという変数名でconfigファイル内において参照することができる。具体的にはあるオブジェクトのコマンド内で他のオブジェクトの情報やコマンドを利用したい場合に使う。
  • コマンド
    • オブジェクト毎にいくつかのコマンドが存在する。

windowオブジェクトのコマンド

caption [文字列]
ウィンドウのキャプション
bgcolor [r, g, b]
背景色
width [数値]
ウィンドウの幅
height [数値]
ウィンドウの高さ
add_menu [メニュー]
メニューを追加(未実装)

fieldオブジェクトのコマンド

init [x, y, w, h]
座標(x, y)に幅w,高さhのフィールドを配置
offset [x, y]
フィールド内のカード配置のオフセット座標
bgcolor [r, g, b]
背景色
color [r, g, b]
枠線、カード枚数の表示色
show_num [x, y, size]
座標(x, y)に文字サイズsizeでカード枚数を表示
attribute [属性]
カードの並び方 :deck, :horizontal, :verticalのどれかを指定
owner [オーナー]
:public, :mine, :othersのどれかを指定 :publicは誰でも触れる :mineは自分のみ :othersは触れない
shuffle
シャッフルする
add_menu [メニュー]
ポップアップメニューを追加
add [カードブロック]
ブロック内で定義したカードを追加する

ポップアップメニューのブロック内では以下のコマンドが表記できる

add_top [カード]
カードを先頭に追加
delete [カード]
カードをフィールドから削除

move_cardとかadd_tailとか必要かも。フィールド内のカードの一覧表示も必要だけど、他のフィールドに表向きで移動させれば一応可能ではある。一時的にフィールドを作成したり削除できると良いのかも?

addコマンド内のブロックにはカードのプロパティとして以下のコマンドが表記できる

width [数値]
カードの幅
height [数値]
カードの高さ
back [パス]
カードの裏面画像のパス
face [パス]
カードの表面画像のパス
state [状態]
:faceなら表向き :backなら裏向き
add_menu [メニュー]
ポップアップメニューを追加

ポップアップメニューのブロック内では以下のコマンドが表記できる

faceup
表向きに
facedown
裏向きに
flip
表向きなら裏向きに 裏向きなら表向きに
rot [数値]
数値1毎に90度時計回りに回転
tap
タップしてたらアンタップ それ以外ならタップ
reverse
リバースしていたら元に戻す それ以外ならリバース

現状こんなところ。もう少しでTCGの一人回し程度ができるレベルになるんじゃないかな。動いてる動画とか見せたいが面倒くさいw


Googleカスタム検索

my recommend books