トップページgamedev
1001コメント416KB

タスクシステム総合スレ part6

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/04/03(金) 11:25:39ID:aSgRO8Wl
タスクシステムについての議論、相談、質問、雑談などのスレです

part5 http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/
part4 http://pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/


・タスクと呼ばれる実装は、非常に多岐に渡ります
 古典タスクシステムについての話題は「>>2」と明示してください
 そうでない場合はカスタム版であることを明示してください

・人を憎んで言語を憎まず
0358名前は開発中のものです。2009/04/14(火) 00:47:45ID:S7vD9cWE
Cでカプセル化するとこんな感じか?

// h
struct player_t;
extern void player_construct(struct player_t*);
extern void player_set_x(struct player_t*,int);
extern void player_set_y(struct player_t*,int);
extern int player_get_x(struct player_t*);
extern int player_get_y(struct player_t*);
extern void player_move(struct player_t*);
0359名前は開発中のものです。2009/04/14(火) 00:48:50ID:S7vD9cWE
// c
struct player_t
{
void (*move)(player_t*);
int x;
int y;
};
void player_construct(struct player_t* player)
{
player->move = &player_move00;
}
void player_set_x(player_t* player,int x)
{
player->x = x;
}
void player_set_y(player_t* player,int y)
{
player->y = y;
}
int player_get_x(player_t* player)
{
return player->x;
}
int player_get_y(player_t* player)
{
return player->y;
}
void player_move(player_t* player)
{
(*player->move)(player);
}
■ このスレッドは過去ログ倉庫に格納されています