ページ 11

3Dモデル移動

Posted: 2011年3月31日(木) 01:00
by G.G.
3Dモデルがキーを離すと元に戻ってしまいます。
どうしたらいいか教えてください。

必ずcodeタグを使用してくださいね。詳しくは、フォーラムルールの確認を。 by softya(ソフト屋)

コード:

#include "DXLib.h"

int Key[256];
VECTOR Vect1, Vect2 ;


typedef struct{
	int right;
	int left;
}flag_t;
 
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[]){
    char GetHitKeyStateAll_Key[256];
    GetHitKeyStateAll( GetHitKeyStateAll_Key );
    for(int i=0;i<256;i++){
        if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
        else                            GetHitKeyStateAll_InputKey[i]=0;
    }
    return 0;
}
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
    ChangeWindowMode(TRUE);//ウィンドウモード
    if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
 
    while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
          //↑メッセージ処理          ↑画面をクリア           ↑入力状態を保存       ↑ESCが押されていない
 

		int ModelHandle ;
		flag_t flag;
		// 3Dモデルの読み込み
		ModelHandle = MV1LoadModel( "date/にとりー.mqo" ) ;
		flag.left=0;
		flag.right=0;

		// Vect1 と Vect2 に値を代入
		Vect1 = VGet( 100.0f, 200.0f, 500.0f ) ;
		Vect2 = VGet( 90.0f, 0.0f, 0.0f ) ;
	if (Key[KEY_INPUT_LEFT]>0){
		flag.left=1;
	}
	if(Key[KEY_INPUT_RIGHT]>0){
		flag.right=1;
	}
	if (flag.left>0){
		Vect1 = VSub( Vect1, Vect2 ) ;
	}
	if (flag.right>0){
		Vect1 = VAdd( Vect1,Vect2);
	}
	
	
	// Vect1 の内容を画面に表示
	DrawFormatString( 0, 0, GetColor( 255,255,255 ), "Vect1  x=%f y=%f z=%f", Vect1.x, Vect1.y, Vect1.z ) ;  

	// 画面に映る位置に3Dモデルを移動
	MV1SetPosition( ModelHandle, Vect1 ) ;

	// 3Dモデルの描画
	MV1DrawModel( ModelHandle ) ;

        ScreenFlip();
    }
 
    DxLib_End();
    return 0;
}

Re: 3Dモデル移動

Posted: 2011年3月31日(木) 01:05
by G.G.
あう、すみません・・・。

Re: 3Dモデル移動

Posted: 2011年3月31日(木) 01:06
by softya(ソフト屋)
上にも書きましたが、必ずcodeタグを使用してくださいね。詳しくは、フォーラムルールに。

で、原因ですが
// Vect1 と Vect2 に値を代入
Vect1 = VGet( 100.0f, 200.0f, 500.0f ) ;
[訂正]Vect2は代入しても良い。
で毎フレーム初期座標に戻しているのが原因です。

Re: 3Dモデル移動

Posted: 2011年4月02日(土) 17:24
by G.G.
すみません、返事遅れました。
無事実行できたので御礼を申し上げます。
ありがとうございました。