Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 碰撞只适用于两个侧面_C#_Collision Detection - Fatal编程技术网

C# 碰撞只适用于两个侧面

C# 碰撞只适用于两个侧面,c#,collision-detection,C#,Collision Detection,因此,我试图在Visual studio express 2013的c#中制作一个pacman克隆。我有迷宫,我在边缘贴上标签。我有一个关于pacman未来坐标的观点。如果该点与标签不相交,pacmans位置将取该点的位置。当“吃豆人”从下或右投球时,这种方法很有效,但如果他从右或右投球,则不起作用。对于鬼魂来说也是如此,鬼魂的移动是随机生成的。他们似乎都认为标签更大。我试图在互联网上搜索原因,但似乎找不到答案。我放下了碰撞检查和pacman移动的部件。提前谢谢 private void

因此,我试图在Visual studio express 2013的c#中制作一个pacman克隆。我有迷宫,我在边缘贴上标签。我有一个关于pacman未来坐标的观点。如果该点与标签不相交,pacmans位置将取该点的位置。当“吃豆人”从下或右投球时,这种方法很有效,但如果他从右或右投球,则不起作用。对于鬼魂来说也是如此,鬼魂的移动是随机生成的。他们似乎都认为标签更大。我试图在互联网上搜索原因,但似乎找不到答案。我放下了碰撞检查和pacman移动的部件。提前谢谢

    private void timer_Tick(object sender, EventArgs e)
    {
       //colision check
        PictureBox intermed = new PictureBox
        {
            Location = new Point(pictureBox1.Location.X + pacdirx, pictureBox1.Location.Y + pacdiry),
        };
        if (!intermed.Bounds.IntersectsWith(label1.Bounds) )
            pictureBox1.Location = new Point(pictureBox1.Location.X + pacdirx, pictureBox1.Location.Y + pacdiry);

    private void Form3_KeyDown(object sender, KeyEventArgs e)
    {
        //pacman movement
        if (e.KeyCode == Keys.W)
        {

            pacdiry = -3;
            pacdirx = 0;
            pictureBox1.Image = Image.FromFile("eat_up.gif");
        }
        if (e.KeyCode == Keys.S)
        {
            pacdiry = 3;
            pacdirx = 0;
            pictureBox1.Image = Image.FromFile("eat_down.gif");
        }
        if (e.KeyCode == Keys.D)
        {
            pacdiry = 0;
            pacdirx = 3;
            pictureBox1.Image = Image.FromFile("eat_right.gif");
        }
        if (e.KeyCode == Keys.A)
        {
            pacdiry = 0;
            pacdirx = -3;
            pictureBox1.Image = Image.FromFile("eat_left.gif");
        }
    }

您从未设置intermed的大小,因此它将是默认大小(100x50)。此外,没有理由首先创建图片框-只需使用大小合适的
矩形
。此外,没有理由首先创建图片框-只需使用大小合适的
矩形。