我正在XNA中制作一个简单的平台游戏,当玩家退出屏幕时,屏幕会翻转。我将屏幕划分为一个由Platforms[x,y]
组成的Board。我有一个显示/隐藏平台的功能。
public void Show(int a, int b)
{
Platforms[a,b].Visible=true;
}
public void Hide(int a, int b)
{
if (Platforms[a, b].Visible == true)
Platforms[a, b].Visible = false;
}
我可以通过隐藏以前的平台并显示新的平台来手动翻转电路板,但它涉及手动计算并且非常繁琐。翻转平台应该是这样的:
[Math.abs(x - maxX),y]
,我认为它会起作用,但我很难制作这种方法。
我想出了这个方法:
public void flip(int a, int b)
{
if (Platforms[a, b].Visible == true)
{
this.Hide(a, b);
this.Show(Math.Abs(a - 15), b);
}
}
但如果原始电路板和翻转板有交叉平台(意思是相同的x和y),则存在问题,平台隐藏在翻转板中。