问题 C#游戏。摇摇晃晃

Lynxai.

成员
加入
2019年12月7日
消息
10
地点
四川中国
编程经验
Beginner
批注2019-12-08 105728.jpg.

只是磨损鼹鼠


私人void movemole()
{
isHit = false;
Mole.Enabled = true;
mole.image = properties.resources.mole;
mole.backcolor = system.drawing.color.Transparent;
locationnum = rabg.next(1,7);

switch (locationNum)
{
case 1:
mole.location =新点(79,75);
break;
case 2:
mole.location =新点(258,76);
break;
case 3:
mole.location =新点(436,76);
break;
case 4:
mole.location =新点(84,342);
break;
case 5:
mole.location =新点(257,344);
break;
case 6:
mole.location =新点(434,345);
break;
default:
break;
}


每个洞都是链接一个新点,但运行这个游戏:
批注2019-12-08 105807.jpg.

鼹鼠不能出现在洞上。

帮我!!
 

附件

  • 批注2019-12-08 105701.jpg.
    批注2019-12-08 105701.jpg.
    56.5 KB · Views: 13
Last edited:

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
第一件事首先,不要发布代码的照片。代码是文本所以将其发布为文本,内部代码格式化标记。这样,如果我们想自己运行它,很容易阅读,也很容易复制。
 
Last edited:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,904
地点
切萨皮克,va.
编程经验
10+
我们如何知道您拥有硬编码的那些职位是正确的,如果您没有向我们显示播放屏幕的代码,则将正确匹配屏幕上的孔正确匹配?

您确定您是否没有在渲染的GDI上下文上设置某种转换?
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
至于这个问题,我们很难说,因为我们只是看到一些代码,结果,没有特别的原因,我们应该认为结果不是你应该从该代码中所期望的。如果是我,我可能会做得很差。我有六个 Picturebox. 控制并只移动 图像 about, e.g.
C#:
private Random rng = new Random();
private PictureBox[] molePictureBoxes;
private PictureBox molePictureBox;
private Image moleImage = Properties.Resources.Mole;

private void Form1_Load(object sender, EventArgs e)
{
    // Create an array of all the PictureBoxes that could display the mole.
    molePictureBoxes = new[]
                       {
                           molePictureBox1,
                           molePictureBox2,
                           molePictureBox3,
                           molePictureBox4,
                           molePictureBox4,
                           molePictureBox6
                       };
}

// This method handles the Click event for all six PictureBoxes.
private void molePictureBoxes_Click(object sender, EventArgs e)
{
    // Check whether the selected PictureBox was clicked.
    if (sender == molePictureBox)
    {
        // The user whacked the mole.
    }
}

private void MoveMole()
{
    // Generate a random index into the PictureBox array.
    var index = rng.Next(molePictureBoxes.Length);

    // Select the PictureBox at that index.
    molePictureBox = molePictureBoxes[index];

    foreach (var pictureBox in molePictureBoxes)
    {
        // Display the mole in the current PictureBox if and only if it is the selected PictureBox.
        pictureBox.Image = pictureBox == molePictureBox
                               ? moleImage
                               : null;
    }
}
 
Last edited:

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
什么 are the locations of the holes? And how are the holes locations generated? What are you using the rabg.Next(1,7); for?
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
如果您希望鼹鼠永远不会连续两次出现在同一个地方,这是一个变体:
C#:
private void MoveMole()
{
    // Choose from all PictureBoxes the first time and non-selected PictureBoxes other times.
    var index = rng.Next(molePictureBox == null
                             ? molePictureBoxes.Length
                             : molePictureBoxes.Length - 1);

    molePictureBox = molePictureBoxes.Except(new[] {molePictureBox}).ElementAt(index);

    foreach (var pictureBox in molePictureBoxes)
    {
        pictureBox.Image = pictureBox == molePictureBox
                               ? moleImage
                               : null;
    }
}
 
最佳 底部