上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
#初めてhtml文書にコードを載っけるので折角だからという事でpreタグ使ってみたいのに激しく崩れるのでやめました。(修正する気力がないというが問題だけど・・・)
見難くてスイマセン


遂に行き詰りました。

typedef struct{
char name[] ;
void ( *func[] )( void ) ;
} Command ;

この宣言に
Command Command_Tbl[]=
{
{ "スキル" , command_skill } ,
{ "魔法" , command_magic , } ,
{ "装備" , command_equip , } ,
{ "スタータス", command_status , } ,
{ "隊列" , command_formation , } ,
{ "作戦" , command_tactics , } ,
{ "環境" , command_option, } ,
{ "セーブ" , command_save, } ,
};

そしてこれ。

Command* tblptr;
 (中略)
文字列描画: tblptr->name


その結果がこれ。
20071022220317.jpg

_| ̄|○ 何故文字化けを・・・

デバッガで内部の変数を見たところ、きちんと値が格納できてない模様。そこまでは分かったんですが、何故?がわからない・・・

関数ポインタと文字列を分けて処理すればきちんと上手く出来るんですが折角なんで構造体にしてみたいじゃないですか。しかし出来ない。プラス、この問題を解決する為にどういう参考書を見ればよいかも分からない。


1週間考えて駄目だったらベタで処理させるしかないかなあ・・・

しばらくは樹海から抜け出せそうにありません。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

お久しぶりです

>>{ "スキル" , command_skill } ,
>>{ "魔法" , command_magic , } ,
スキルにはcommand_の後にカンマが無いのに、その後には全てカンマがついていますが、脱字というわけではないでしょうか?
2007/10/28 09:40 |BIS #2N6Bb28wURL編集 ]

あれ・・・

どもども、BISさんお久しぶりです。

>スキルにはcommand_の後にカンマが無い
あれ、本当だorz
しょうもないミスは日常茶飯事なんですが、これはなかなか(苦笑)

ご指摘有難う御座います。
結局、あのあとあれこれ考えていたらそもそも今の設計上では関数ポインタを呼んでも意味が無いことに気がつきまして、下記のようにフェーズを変更させる方法を取りました。

typedef enum{
MENU_INIT,
MENU_COM_SELECT, /* コマンドを選択する(最初の場面) */
MENU_SKILL,
MENU_MAGIC,
MENU_EQUIP,
MENU_STATUS,
MENU_FORMATION,
MENU_TACTICS,
MENU_OPTION,
MENU_SAVE,
MENU_CHARA_SELECT, /* コマンド決定後、キャラを選択する */
MENU_END
} MENU_PHASE;

Command Command_Tbl[]=
{
{ "スキル" , MENU_SKILL } ,
{ "魔法" , MENU_MAGIC } ,
{ "装備" , MENU_EQUIP } ,
{ "ステータス", MENU_STATUS } ,
{ "隊列", MENU_FORMATION , } ,
{ "作戦", MENU_TACTICS , } ,
{ "環境", MENU_OPTION, } ,
{ "セーブ" , MENU_SAVE, } ,
};

いちおう今はこれで上手く動いているのですが、これが正しいやり方かははてさて。

ゲーム製作って本当難しいですね。
2007/10/29 00:07 |extrier@管理人 #sBnfFoo6URL[ 編集 ]

コメントの投稿

URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
powered by
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。