私のはC++でDXライブラリは使っていません。
今ゲームを作っているのですが吹き飛ばすプログラムがわかりません。キャラクター1がキャラクター2に体当たりをした時、左からなら右に、上からなら下に真っ直ぐ吹き飛ばすという感じでやってみたいと思うのですがよくわかりません。どうやれば吹き飛ばしができるのでしょうか?
当たり判定はRECTを使っています
ボタンを押すと攻撃グラフィックが出ます
gAttack、gPlayer2 x.y ...キャラクター1の攻撃座標 キャラクター2の座標
gAttack.gPlayer vx、vy ... キャラクター1の攻撃速度 キャラクター2の速度
gAttack.use ・・・ フラグ
if(key & KEYIN_Z)
{
if(gAttack.use == 0)
{
gAttack.use =1;
(int)gAttack.x = (int)gPlayer1.x;
(int)gAttack.y = (int)gPlayer1.y;
}
if(gAttack.use == 1)
{
gAttack.use = 0;
}
}
RECT rc_gAttack , rc_gPlayerX , rc_dammy;
SetRect(&rc_gAttack , (int)gAttack.x , (int)gAttack.y, ((int)gAttack.x + ATTACK_WIDTH ) , ((int)gAttack.y + ATTACK_HEIGHT ) );
SetRect(&rc_gPlayerX , (int)gPlayer2.x , (int)gPlayer2.y , ((int)gPlayer2.x + P2_WIDTH) , ((int)gPlayer2.y + P2_HEIGHT) );
if( IntersectRect( &rc_dammy , &rc_gAttack , &rc_gPlayerX) )
{
(int)gAttack.vx = (int)gPlayer2.vx;
(int)gAttack.vy = (int)gPlayer2.vy;
}