ジャンプ中の変化(慣性)
Posted: 2009年4月17日(金) 22:13
ジャンプ中に移動方向を変える関数に変更したいのですが、どうしたらいいのかわかりません。。
ジャンプ前の移動(curvec1)で慣性を記録し、ジャンプ中操作を離れて
慣性(g_jikivector)だけで移動します。
このコードを
ジャンプ中、操作できない(慣性の法則だけで移動)
↓
ジャンプ中、操作できるように(マリオみたいにジャンプ中に向きを着地場所を変えられる)
にできませんか?
AddVector ベクトルの合成関数
curvec1 移動の命令
JUMPMOVEC ジャンプ(y-180)
g_nowjumping ジャンプしているかしていないかのフラグ
g_jikivector 慣性変数(ジャンプ中、この中にcurvec1とベクトルで合成)
g_jikipos 自機ポジション
//ジャンプ処理
if( key & PAD_INPUT_A ){
if ( g_akey_previous == FALSE ){
curvec1 = AddVector( curvec1, JUMPMOVEC );
g_nowjumping = TRUE;
g_akey_previous = TRUE;
}
} else {
g_akey_previous = FALSE;
} //自キャラ座標の計算
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 );
ジャンプ前の移動(curvec1)で慣性を記録し、ジャンプ中操作を離れて
慣性(g_jikivector)だけで移動します。
このコードを
ジャンプ中、操作できない(慣性の法則だけで移動)
↓
ジャンプ中、操作できるように(マリオみたいにジャンプ中に向きを着地場所を変えられる)
にできませんか?
AddVector ベクトルの合成関数
curvec1 移動の命令
JUMPMOVEC ジャンプ(y-180)
g_nowjumping ジャンプしているかしていないかのフラグ
g_jikivector 慣性変数(ジャンプ中、この中にcurvec1とベクトルで合成)
g_jikipos 自機ポジション
//ジャンプ処理
if( key & PAD_INPUT_A ){
if ( g_akey_previous == FALSE ){
curvec1 = AddVector( curvec1, JUMPMOVEC );
g_nowjumping = TRUE;
g_akey_previous = TRUE;
}
} else {
g_akey_previous = FALSE;
} //自キャラ座標の計算
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 );