C#ascii游戏冲突
我的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 下面是我的游戏“
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