我在这里缺少什么
精灵等级
private Texture2D m_tex;
public Rectangle rect;
private bool m_travellingRight;
private int x_pos;
//constructor
public LightSaber(Texture2D tex, int xpos, int ypos)
{
m_tex = tex;
rect = new Rectangle(xpos, ypos, m_tex.Width, m_tex.Height);
m_travellingRight = true;
}
public void drawme(SpriteBatch sb)
{
if (m_travellingRight)
sb.Draw(m_tex, rect, Color.White);
else
sb.Draw(m_tex, rect, null, Color.White, 0, Vector2.Zero, SpriteEffects.FlipHorizontally, 0);
}
public void updateme(GamePadState pad)
{
x_pos = rect.X;
if (pad.ThumbSticks.Left.X < 0 && x_pos > 0)
{
m_travellingRight = false;
rect.X -= 4;
}
else if (pad.ThumbSticks.Left.X > 0 && x_pos < 800 - rect.Width)
{
m_travellingRight = true;
rect.X += 4;
}
}
}
}
的Game1:
LightSaber lightSaber;
lightSaber = new LightSaber(Content.Load<Texture2D>("Textures\\Lightsaber"), 300, 500);
lightSaber.drawme(spriteBatch);
感谢您的帮助。
答案 0 :(得分:0)
我错过了Game1.class中的很多代码,如果你错过任何东西,看看全班都会很高兴。
所以现在,我会给你一些提示:
我没有在game1课程中看到任何spritebatch.begin()或spritebatch.End(),因为它已经缩短了,为了绘制任何内容,应该需要这些。
您还可以尝试在绘制纹理时设置断点。并检查它是否确实吸引它,或者至少可以达到它。
另一种可能性,它确实绘制精灵,但它的位置超出范围,(在游戏窗口外),我更喜欢把位置放在0,直到我确定它可以画出纹理
另外,请注意您何时使用没有大括号的语句。因为没有它们,它只能在语句后读取一行代码。如果您在语句中添加新行或注释,那么您将获得意外行为。 (我之前犯过这个错误。)
现在就是这样,希望这会有所帮助