2004-01-01から1ヶ月間の記事一覧

エラーコード(C++側)

Lua

"Lua_***"のメソッドの返し値として定義されているのは以下の5つのようです(メソッドによって返る物が違うのが困り物だが……) include\lua.h(36): #define LUA_ERRRUN 1 include\lua.h(37): #define LUA_ERRFILE 2 include\lua.h(38): #define LUA_ERRSYNT…

エラーコード

Lua

Luaの実行時エラーメッセージをソースコード中に探したのですが、リソース管理されてなくて、エラーが発生したその場所でエラー文字列生成してた(泣) 可能な限り調べて表にしました(レイアウト崩れてるけど)http://someiyoshino.cool.ne.jp/insideyanesd…

yeildをめぐる冒険

最近のスクリプト言語には大抵"yeild"という命令があります。これ今まではずかしげもなく「イエールド」と読んでいましたが、「イールド」が正しいらしいです^^;。 さてyeildとはなにか? 辞書を引くとこうなってます。 yield (スペースアルクより) 【レ…

Programming in Lua

Lua

asin:8590379817 恐らく現時点で出版されている唯一のLua本。来月あたり購入予定(今月は色々出費が重なってピンチ)

今のネック

Lua

構文エラーが起きた時にそれをフックする手段が欲しいです。あるんでしょうけど探してません(イベントラッパの製作が先)。

構造化テーブルへのアクセス

Lua

昨日延々やっていたのはイベントシーンの記述をLuaのテーブルで行って、その中身をC++から取得するテストでした 結局、スタックをがちゃがちゃいじってテーブルにアクセスするより、ツリーの末端をまるごと返すLuaメソッド書いた方がはるかに簡単でした。 ま…

lua_next使用時の注意

Lua

イテレーションにおける要素の取得順序は不定。number,tableなどもソートされない。 ちゅーことはですよ。インデックスを指定して値を取るか、ラベル名を指定して値を取るかしかない(そりゃそうか?) ソート順序の指定、型コレクションを取得する方法につ…

テーブル内テーブルへのアクセス

Lua

luaスクリプト test={3,4,5,test2={10,11}} test.test2テーブルにアクセスする //グローバル配列へのアクセス lua_getglobal(L, "test"); printf("pop%3d\n",lua_gettop(L)); lua_pushstring(L, "test2"); lua_gettable(L, -2); lua_pushnil(L); printf("%3d…

配列のイテレーション

Lua

//配列の巡回 lua_pushnil(L); while(lua_next(L ,-2) != 0) { printf("%3d\n",lua_gettop(L)); printf("%s - %s - %s\n", lua_typename(L, lua_type(L, -3)), lua_typename(L, lua_type(L, -2)), lua_typename(L, lua_type(L, -1))); printf("%f - %f\n", l…

単純な配列へのアクセス

Lua

luaのスクリプトで、グローバルにこんな配列があったとして test={3,4,5} これにアクセスする //グローバル配列へのアクセス lua_getglobal(L, "test"); lua_rawgeti(L, -1, 1); printf("%f\n",lua_tonumber(L,-1)); lua_pop(L, 1); lua_rawgeti(L, -1, 2); …

lua_rowgetiはバグ?

Lua

lua_rowgetiで配列から値を取り出そうとすると、結果がスタックの0に格納されます。でもスタック0って使用禁止では? ←勘違い。配列インデックスの初期値を"0"にしてて、スタックが変になってたっぽい。正しくは"1"から。

lua_numberは

Lua

lua_numberはdoubleの#defineです

"%f"にintを入れるな(なの?)

以下の出力の結果は"0.0000"です printf("%f\n",1); 書式化文字列とか、そういう基本的な所を分かって無いんだよな……。俺。(ちなみに"%d"なら"1"と表示されます)

いろいろ

C++用のタスクシステム組んだり、GDI+の基礎勉強したりしてます。

Welcome to C# world

C#

節操無しな感じですが、windowsフォーム使ったアプリケーション開発手法を覚えておこうと思いまして、C#でのRAD開発を勉強する事にしました。なんでJavaじゃないんだというツッコミもありましょうが、しばらくはVS.NETを使い続けます。 早速GDI+の使い方を確…

アウトラインプロセッサ

みたいな物を作りたいと思っているのですが、それを作るのに考えをまとめる為のアウトラインプロセッサが欲しい(笑) という訳でnami2000を導入。軽快な使い心地が良いですね。自作する必要無くなったかも(笑)

「継続」と「末尾呼出除去の最適化」の違い

Lua

Luaには「末尾呼出除去の最適化」という仕様があって、そもそもみはえるはこの「末尾呼出除去の最適化(名称が長いよ!)=継続」なのかと思っていました。以下、Luaにおける「末尾呼出除去の最適化」を説明します。詳しくはリファレンスマニュアルを参照し…

ケイゾク(Call with Current Continuation(Call/CC))

ケイゾク。大好きです。渡部篤郎は天才です。堤幸彦最高です。ただ、残念ながらそのケイゾクではありません(爆)。コンピュータ言語の技術の一つである「継続(continution)」の話。 ゲームのシーン管理において、「以前のシーンのスタックを捨てて別のシ…

ヴィルトのコンパイラ構成法

散々まったあげくにamazon.co.jpから入手不可のお知らせが。あんまり待たせんなー(泣)

昨年までは

アナログゲームの製作を中心にやっていたのですが、今年はC++漬けになる予定。みなさま今後ともお付き合いの程よろしくおねがいします。

インデント

霞ヶ房のサイトを読んでいて、初めて、YAMLにおけるインデントはタブでは無くスペースでなければならないという事を知りました(爆) YAMLの中核の仕様を理解していなかった事を反省。なるほど、だからブロックスペース識別子なんてあるのねー。インデントレ…

LuaをYAMLパーサーにする

Lua

一応確認しておくと、YAMLのパーサーをLuaで実装する訳ではありません。Luaのデータ構造でYAMLと同等の物が記述できないかという話です。リプレーサは作るかもしれませんが。いや、だったらパーサー作っても同じか?当面の作業は以下の2つ 既にやっている人…

YAML Lua SMIL おーいえー

新年明けましておめでとうございます。今年もよろしくお願いします。タイトルに特に意味は無いのですが、ゲームのシナリオ(含む演出)の記述方式とその実装に何を用いるか悩み中。仕様が固まっているという意味ではSMILを使いたいのですが、XML形式はゲーム…