我是新手,我正在制作一个非常简单的2D平台游戏,其中一个级别是从文本文件中加载的。我无法尝试如何弄清楚我的角色精灵如何与瓷砖碰撞。 这是我的游戏将运行的.txt示例:
1,1,1,1,1,1,1,1,
1,1,1,0,0,0,0,1,
1,1,0,0,0,1,0,1,
1,0,0,0,0,1,1,1,
1,0,0,0,0,0,0,1,
1,0,0,0,1,0,0,1,
1,S,0,1,1,0,F,1,
1,1,1,1,1,1,1,1,
我已经设法弄清楚如何成功地将它们绘制到页面上,但无法进一步发展。 当精灵的边缘接触到屏幕边缘并将其速度设置为0时,我当前的模型让我的角色与屏幕边缘碰撞,因为碰撞的布尔值等于true,但我不知道该怎么做阻止从.txt生成的 我当前绘制关卡的模型如下所示:
if (currentState == GameState.Playing)
{
for (y = 0; y <= 7; y++)
{
string[] mapchars = maplines[y].Split(','); //where maplines is each row of characters and mapchars is each individual character//
for (x = 0; x <= 7; x++)
{
if (mapchars[x] == "1")
{
spriteBatch.Begin();
spriteBatch.Draw(block, new Vector2((200 + (50 * x)), ((50 * y))), Color.White);
spriteBatch.End();
}
if (mapchars[x] == "F")
{
spriteBatch.Begin();
spriteBatch.Draw(block, new Vector2((200 + (50 * x)), ((50 * y))), Color.Yellow);
spriteBatch.End();
}
if (mapchars[x] == "S")
{
spriteBatch.Begin();
spriteBatch.Draw(sprite, new Rectangle((200 + (50 * x)), ((50 * y)), 40, 40), Color.White*0.5f);
spriteBatch.End();
}
if (x > 7)
{
break;
}
}
if (y > 7)
{
break;
}
}
}
其中maplines []是.txt的每一行,而mapchars []是每行的每个字符。 如果有人知道这个问题的解决方案,那将是一个很大的帮助:) 感谢。
答案 0 :(得分:1)
不要这样做!你正在以这样编码的游戏浪费很多速度。我有一个问题。
如果您不理解我所说的内容,只需进行一些Google搜索即可获得必要的知识,以便您了解。首先要承认我试图解释你和之后的事情,你可以专注于碰撞,更先进。