22. キャラを4方向に歩かせる。 についての質問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
xxk1

22. キャラを4方向に歩かせる。 についての質問

#1

投稿記事 by xxk1 » 14年前

初めまして
私はC言語でのプログラミングに挑戦してみようと思い、C言語~ゲームプログラミングの館~の「22. キャラを4方向に歩かせる。 」を参考にしながらプログラミングしました。
 同じように入力したはずなのですが、デバックすると「エラー:ステートメントが必要です」と表示され、困っています。

どうすれば、このエラーを解決できるか教えてください。

C言語暦は
2,3ヶ月ぐらいです

これがコードです。

コード:

#include "DxLib.h"
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
        if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了 
 //

		#include "DxLib.h"
 
typedef struct{
        int x,y,img,muki,walking_flag;
}ch_t;
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        
        int image[16];
        char Key[256];
        ch_t ch;
 
    if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
 
        ch.x    =320;
        ch.y    =160;
        ch.walking_flag=0;
        ch.muki=3;
 
        SetDrawScreen( DX_SCREEN_BACK ) ;                                                 //描画先を裏画面に設定
        LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ;//画像を分割してimage配列に保存
 
    while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
            //↑メッセージ処理        ↑画面をクリア         ↑キーボード入力状態取得       ↑ESCが押されると終了
 
        if(ch.x%32==0 && ch.y%32==0){         //座標が32で割り切れたら入力可能
            ch.walking_flag=1;         //歩くフラグを立てる。
            if     ( Key[ KEY_INPUT_UP   ]  == 1 )  //上ボタンが押されたら
                    ch.muki=0;         //上向きフラグを立てる
            else if( Key[ KEY_INPUT_LEFT ]  == 1 )  //左ボタンが押されたら
                    ch.muki=1;         //左向きフラグを立てる
            else if( Key[ KEY_INPUT_DOWN ]  == 1 )  //下ボタンが押されたら
                    ch.muki=2;         //下向きフラグを立てる
            else if( Key[ KEY_INPUT_RIGHT]  == 1 )  //右ボタンが押されたら
                    ch.muki=3;         //右向きフラグを立てる
            else                                    //何のボタンも押されてなかったら
                    ch.walking_flag=0; //歩かないフラグを立てる
        }
 
        if(ch.walking_flag==1){        //歩くフラグが立っていたら
            if     (ch.muki==0)        //上向きならch.y座標を減らす
                    ch.y--;
            else if(ch.muki==1)        //左向きならch.x座標を減らす
                    ch.x--;
            else if(ch.muki==2)        //下向きならch.y座標を増やす
                    ch.y++;
            else if(ch.muki==3)        //右向きならch.x座標を増やす
                    ch.x++;
        }
 
        ch.img=image[(ch.x%32+ch.y%32)/8 + ch.muki*4];            //画像をセット
 
        DrawGraph( ch.x , ch.y , ch.img , TRUE ) ;//画像を描画
 
        ScreenFlip();//裏画面を表画面に反映
    }
 
    DxLib_End();
    return 0;
}


		//
 
 
        WaitKey() ;             // キーの入力待ち(『WaitKey』を使用) 
        DxLib_End() ;           // DXライブラリ使用の終了処理
        return 0 ;              // ソフトの終了
}



 

アバター
沖 滉均
記事: 237
登録日時: 14年前
住所: K県F市

Re: 22. キャラを4方向に歩かせる。 についての質問

#2

投稿記事 by 沖 滉均 » 14年前

色々突っ込みどころはありますが…
もしほんとにそんなコードなのならばコンパイルすら通るのか怪しく見えますよ
WinMainが2回あったりWinMainの中でincludeしてたり
もう1度最初から作り直してみたほうが良いのではないかと思いますが
There is no royal road to learning.
codeタグで指定できる言語
画像

xxk1

Re: 22. キャラを4方向に歩かせる。 についての質問

#3

投稿記事 by xxk1 » 14年前

ありがとうございました
解決しました

閉鎖

“C言語何でも質問掲示板” へ戻る