Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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#ascii游戏冲突_C#_C# 4.0_Ascii_Collision - Fatal编程技术网

C#ascii游戏冲突

C#ascii游戏冲突,c#,c#-4.0,ascii,collision,C#,C# 4.0,Ascii,Collision,我的ascii游戏冲突需要帮助。我已经知道当玩家击中另一个物体时,它会做些什么。但是当我想让玩家在击中物体时停止时,我有点困惑 当玩家与另一个物体碰撞时,我会使用它 if(player.x == object.x && player.y == object.y) { //Does something } 如果你能帮我的话,那就太棒了,因为我在碰撞事件上已经有一段时间了,我想把它应用到我的游戏中,所以它可能是一个类似迷宫的游戏。谢谢阅读:3 下面是我的游戏“

我的ascii游戏冲突需要帮助。我已经知道当玩家击中另一个物体时,它会做些什么。但是当我想让玩家在击中物体时停止时,我有点困惑

当玩家与另一个物体碰撞时,我会使用它

if(player.x == object.x && player.y == object.y)
  {
       //Does something
  }
如果你能帮我的话,那就太棒了,因为我在碰撞事件上已经有一段时间了,我想把它应用到我的游戏中,所以它可能是一个类似迷宫的游戏。谢谢阅读:3

下面是我的游戏“完整代码”的结构:

publicstaticvoidmain(字符串[]args)
{
int x=40;
int y=12;
int ax=23;
int-ay=7;
int苹果=0;
int-starX=64;
int-starY=5;
智力得分=0;
int-total=0;
整数时间=100;
int-xt;
int yt;
bool-quit=false;
Console.Title=“捕获并运行”;
while(quit==false)
{
Console.BackgroundColor=ConsoleColor.DarkGreen;
//块
控制台。设置光标位置(29,18);
Console.BackgroundColor=ConsoleColor.DarkGreen;
//清屏
Console.Clear();
//球员
控制台。设置光标位置(x,y);
Console.ForegroundColor=ConsoleColor.Yellow;
控制台。写入(“☻");
控制台。设置光标位置(ax,ay);
Console.ForegroundColor=ConsoleColor.Red;
控制台。写入(“o”);
控制台。设置光标位置(starX,starY);
Console.ForegroundColor=ConsoleColor.Gray;
控制台。写入(“☻");
Console.ResetColor();
//得分
Console.SetCursorPosition(0,0);
Console.WriteLine(“人:+score”);
//苹果
控制台。设置光标位置(20,0);
控制台。WriteLine(“苹果:+apple”);
//总数
控制台。设置光标位置(40,0);
总数=苹果+分数;
控制台写入线(“总计:+总计);
//计时器
控制台。设置光标位置(0,23);
Console.WriteLine(“左步:+时间”);
时间--;
ConsoleKeyInfo-keyInfo=Console.ReadKey(false);
//按键控制
开关(keyInfo.Key)
{
case ConsoleKey.逃生:
退出=真;
打破
case ConsoleKey.UpArrow:
如果(y>1)
y--;
打破
case ConsoleKey.DownArrow:
if(y<22)
y++;
打破
case ConsoleKey.LeftArrow:
如果(x>0)
x--;
打破
case ConsoleKey.RightArrow:
if(x<79)
x++;
打破
}
//随机化黑人
如果(x==starX&&y==starY)
{
随机=新随机();
starX=random.Next(0,80);
starY=random.Next(1,22);
分数+=10分;
时间+=30;
}
//随机化苹果
如果(x==ax&&y==ay)
{
随机=新随机();
ax=随机。下一个(0,80);
ay=随机。下一个(1,22);
苹果+=5;
时间+=20;
}
//游戏结束计时器设置为0
如果(时间==0)
{
Console.Clear();
控制台。设置光标位置(40,0);
控制台。WriteLine(“游戏结束”);
控制台写入线(“分数”+总计);
Console.WriteLine(“按任意键继续”);
Console.ReadKey();
退出=真;
}
如果(x==29&&y==18)
{
x=0;
y=1;
}
}
}
}

}

这让人觉得你对C#/面向对象编程还不熟悉。我的答案会有点复杂,但我欢迎进一步提问

回答你的核心问题,“当玩家击中目标时,我希望玩家停止”,你需要找出人类玩家想要移动英雄的位置,然后进行碰撞检测,如果玩家没有被阻挡,你就移动他

如果这最终将是一个迷宫式的游戏,您需要以某种方式存储游戏场。一个简单的方法是:

char[,] maze = new char[25,80]; // [y,x]
你应该首先创建这个数组,在其中放几个苹果,然后显示电路板

例如,我们可以通过以下操作将苹果放置在5,5处:

maze[5,5] = 'o';
显示配电盘工作后,可以将其扩展以创建墙,例如:

for(int by=10; by<20; by++)
{
   maze[by, 0] = '#';
   maze[by, 2] = '#';
}

for(int by=10;by这让人觉得您对C#/面向对象编程还不熟悉。我的答案会有点复杂,但我欢迎进一步提问

回答你的核心问题,“当玩家击中目标时,我希望玩家停止”,你需要找出人类玩家想要移动英雄的位置,然后进行碰撞检测,如果玩家没有被阻挡,你就移动他

如果这最终将是一个迷宫式的游戏,您需要以某种方式存储游戏场。一个简单的方法是:

char[,] maze = new char[25,80]; // [y,x]
你应该首先创建这个数组,在其中放几个苹果,然后显示电路板

例如,我们可以通过以下操作将苹果放置在5,5处:

maze[5,5] = 'o';
显示配电盘工作后,可以将其扩展以创建墙,例如:

for(int by=10; by<20; by++)
{
   maze[by, 0] = '#';
   maze[by, 2] = '#';
}

for(int by=10;by如何移动玩家?你的玩家应该以一定的速度移动,然后你可以将其设置为0。你如何移动玩家?你的玩家应该以一定的速度移动,然后你可以将其设置为0