私は小さなRPGゲームに取り組んでおり、現在持っているものは次のとおりです。
*アニメーションと基本的な衝突を伴うキャラクター; *衝突をテストする 32x32 のボックス。
今のところは以上です..xD
私のキャラクターは、幅 32xPixels、高さ 48xPixels、32x38 です。
そして、私は2つの長方形を持っていますplayerRectangle
(衝突と移動用); そしてrectangleAnimation
、キャラクターアニメーション。
ええと、私の質問は、キャラクターの半分だけをカバーする衝突長方形をどのように作成するのですか? 現在、私の長方形は32x48ですが、画像をトリミングせずに 32x24 にするにはどうすればよいですか?
岩や木など、何かの前にいるような錯覚を与えます。
32x24 の別のスプライトを作成しようとしましたが、それを長方形にして、プレーヤー クラスで 2 つのスプライトを描画しましたが、うまくいきませんでした...
CollisionHandler.cs
最後の質問ですが、壁や箱などのすべての固体のように、別のクラスを作成する必要がありますか?
プレーヤーの移動コードは次のとおりです(異なるサイズの長方形を作成しようとはしていません):
if (keyState.IsKeyDown(Keys.Left))
{
playerRectangle.X -= playerSpeed;
movingLeft = true;
movingRight = false;
}
else if (keyState.IsKeyDown(Keys.Right))
{
playerRectangle.X += playerSpeed;
movingRight = true;
movingLeft = false;
}
if (keyState.IsKeyDown(Keys.Up))
{
playerRectangle.Y -= playerSpeed;
movingUp = true;
movingDown = false;
}
else if (keyState.IsKeyDown(Keys.Down))
{
playerRectangle.Y += playerSpeed;
movingDown = true;
movingUp = false;
}
(コードが乱雑に見えて申し訳ありません。私はこのサイトに不慣れで、構造化する方法がわかりません:/)
そして私の衝突チェック(Game1.csにあります):
if(isColliding())
{
if (player.movingRight)
{
player.playerRectangle.X -= player.playerSpeed;
}
else if (player.movingLeft)
{
player.playerRectangle.X += player.playerSpeed;
}
if (player.movingUp)
{
player.playerRectangle.Y += player.playerSpeed;
}
else if(player.movingDown)
{
player.playerRectangle.Y -= player.playerSpeed;
}
}
「isColliding」と呼ばれるメソッドがありGame1.cs
、別のクラスの四角形と私の playerRectangle の衝突をチェックします。
長くなって申し訳ありませんが、よろしくお願いします。他に何か知っていることがあれば教えてください :)