私は単純なゲームを作って衝突を加えました。私のプレイヤーは窓の外に出ないようにしました。それは働きました。壁を作って衝突を起こしたいと思っていましたが、動きませんでした。 方法はありますか? "プレーヤー"が壁を通って行くのを止める方法はありますか?「プレーヤー」と「壁」との衝突を実装するにはどうすればよいですか?
運動コード:
if(e.KeyCode == Keys.A)
{
left = true;
}
if (e.KeyCode == Keys.D)
{
right = true;
}
if (e.KeyCode == Keys.W)
{
up = true;
}
if (e.KeyCode == Keys.S)
{
down = true;
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
#region Stop controls
if (e.KeyCode == Keys.A)
{
left = false;
}
if (e.KeyCode == Keys.D)
{
right = false;
}
if (e.KeyCode == Keys.W)
{
up = false;
}
if (e.KeyCode == Keys.S)
{
down = false;
}
}
私の外壁衝突:現在、あなたは外壁の座標の選手だけでなく、境界を決定する整数値を使用しているかのように私はそれを読ん
if (right == true)
{
if (player.Left >= level.Width - player.Width)
{
player.Left = level.Width - player.Width;
}
else
{
player.Left += speed;
}
}
if (left == true)
{
if (player.Left <= level.Left)
{
player.Left = level.Left;
}
else
{
player.Left -= speed;
}
}
if (up == true)
{
if(player.Top <= level.Top)
{
player.Top = level.Top;
}
else
{
player.Top -= speed;
}
}
if (down == true)
{
if (player.Top >= level.Bottom - player.Height)
{
player.Top = level.Bottom - player.Height;
}
else
{
player.Top += speed;
}
}
おかげで、あなたはグリッドの右側のいくつかの並べ替えを意味ですか? しかし、「プレーヤー」は自由に移動し、「グリッド」のような制限はありませんか? –
私のプレイヤーは幅が1ピクセル、高さが1ピクセルしかありません。いいえ? –
はい、グリッドとして機能します。 純粋にC#またはゲームエンジンの中で作っていますか? 純粋にC#で作成し、プレイヤーの位置を変数で設定するだけの場合は、設定したもの以外の制限はありません。 グリッドの外側部分を外側境界壁として定義することができます。これは、各セルのために定義した設定と共に、プレーヤーがどこで歩くことができるか、そしてそのように、彼の移動制限を決定します。 – Doh09