アドバイスお願いします

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

アドバイスお願いします

#1

投稿記事 by すい » 13年前

こんにちは、また詰まってしまったので質問させていただきます。

前回みなさんのおかげで絵を描画することが出来て、歩く・ジャンプをさせることが出来たのですが、
絵を動きに合わせて変えることが出来ずに困っています。

コード:

#include "myhelper.h"
#include "mymain.h"

//自キャラのデータ
Point2D g_jikipos = {40,400};	//自キャラの座標
Vector g_jikivector = {0,0};		//自キャラのベクトル
BOOL g_direction = DIRECTION_RIGHT;	//自キャラの向き
BOOL g_nowjumping = FALSE;	//ジャンプ中か否か


//画像ハンドル
int g_jikiimage[11];

//メインループ
void MyMain(){
	Vector curvec1 = {0, 0};

	//自キャラの移動
	int key = GetJoypadInputState( DX_INPUT_KEY_PAD1 );//キーの受付
	
	if (key & PAD_INPUT_LEFT){ 
		curvec1 = AddVector( curvec1, LEFTMOVEC );
		g_direction = DIRECTION_LEFT;
	}
	if (key & PAD_INPUT_RIGHT){
		curvec1 = AddVector( curvec1, RIGHTMOVEC );
		g_direction = DIRECTION_RIGHT;
	}
	//地面との当たり判定
	BOOL ontheground = FALSE; //接地フラグ
	if ( g_jikipos.y > 399 ){
		ontheground = TRUE;//接地時
		g_nowjumping = FALSE;//ジャンプをしていない
		g_jikivector.x = 0;
		g_jikivector.y = 0;
	}

	//ジャンプ処理
	if (key & PAD_INPUT_A){
		curvec1 = AddVector(curvec1, JUMPMOVEC );
		g_nowjumping = TRUE;
	}


	//自キャラの座標の計算
	if ( ontheground == TRUE ){
		//接地時
		g_jikivector = AddVector (g_jikivector, curvec1);
	}else{
		//ジャンプ中
		g_jikivector = AddVectorInFrameTime(g_jikivector, GRAVITY);
		if (g_jikivector.y > 400) g_jikivector.y = 400;
	}
	
	g_jikipos = AddVectorInFrameTime( g_jikipos, g_jikivector );


	//自キャラの描画
	if ( (ontheground == TRUE) && (g_nowjumping == FALSE) ){
		if ( fabs(curvec1,x) > ZEROVALUE){
			//走る
			DrawAnimation(g_jikipos.x,g_jikipos.y,1,0,g_direction,&g_jikiimage[2],6,12 );
		}else{
			//停止状態
			DrawAnimation(g_jikipos.x,g_jikipos.y,1,0,g_direction,&g_jikiimage[1],1,12 );
		}else{
			//ジャンプ状態
			if ( fabs(g_jikivector.x) < ZEROVALUE) ){
				DrawAnimation(g_jikipos.x,g_jikipos.y,1,0,g_direction,&g_jikiimage[8],1,12 );
			}else{
				DrawAnimation(g_jikipos.x,g_jikipos.y,1,0,g_direction,&g_jikiimage[9],1,12 );
				
			}
		}
	}


	DrawAnimation( g_jikipos.x , g_jikipos.y,1 ,0, FALSE,
		&g_jikiimage[2], 6, 12 );
}

//色々なファイルの読み込み
int LoadFiles(){
	//画像ファイルの読み込み
	if (LoadDivGraph("media\\player01.bmp",
		11,11,1,64,64,g_jikiimage) == -1) return -1;
	
	return 1;
}

mymain.cpp(60) : error C2065: 'x' : 定義されていない識別子です。
mymain.cpp(66) : error C2181: else 文が if と一致しません。
mymain.cpp(68) : error C2059: 構文エラー : ')'
この3つのエラーが出てしまいます。
お手数掛けますがアドバイスお願いします。

たかぎ
記事: 328
登録日時: 14年前
住所: 大阪
連絡を取る:

Re: アドバイスお願いします

#2

投稿記事 by たかぎ » 13年前

すい さんが書きました:mymain.cpp(60) : error C2065: 'x' : 定義されていない識別子です。
mymain.cpp(66) : error C2181: else 文が if と一致しません。
mymain.cpp(68) : error C2059: 構文エラー : ')'
この3つのエラーが出てしまいます。
お手数掛けますがアドバイスお願いします。
これらのエラーメッセージはかなり分かりやすいものです。
必要なら、リファレンスでエラーメッセージの解説も読んでください。
C++の基本的な文法と日本語が理解できれば容易に修正できるはずです。

すい

Re: アドバイスお願いします

#3

投稿記事 by すい » 13年前

ですよね・・・
なんとか自分でもわかりそうな内容で、何度か見直したのですが結局甘えてしまったようです。
もう一度頑張ってきます、返事ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: アドバイスお願いします

#4

投稿記事 by softya(ソフト屋) » 13年前

すい さんが書きました:ですよね・・・
なんとか自分でもわかりそうな内容で、何度か見直したのですが結局甘えてしまったようです。
もう一度頑張ってきます、返事ありがとうございました。
ヒント出しますので調べてみて下さい。
1つ目のエラー: ここの画面で見比べると他のxを使っている所との違いが分かると思います。
2つ目のエラー: if文の文法を調べなおして下さい。
3つ目のエラー: VC++だとCtrl-]で対応す括弧を確認することが出来るはずです。それで分かると思うのですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

すい

Re: アドバイスお願いします

#5

投稿記事 by すい » 13年前

ソフト屋さん前回に続き返答ありがとうございます。

Crel+] この方法知らなかったので勉強になりました。
そしてたった今正常に動くようになりました、次からもっと調べて質問したいと思います。
ありがとうございました。

閉鎖

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