我目前有一個小行星紋理加載爲我正在寫的遊戲的「測試玩家」。我試圖弄清楚如何做的是從小行星的中心拍攝一個三角形,並繼續前進,直到它碰到屏幕的頂部。在我的例子中發生了什麼(就像你從我發佈的代碼中看到的那樣),就是三角形會顯示,但是它可能是一條長線,或者它只是一個三角形,它停留在相同的位置當小行星在四處移動時(當我停止按下空格鍵時消失),或者根本不會出現。我嘗試了許多不同的方法,但我可以在這裏使用一個公式。如何從小行星上拍攝出一個三角形,這個小行星一直浮到屏幕上?
我想要做的就是在C#中爲我的最終編寫一個空間侵略者克隆。我知道如何編寫得很好,我的公式只需要工作就可以。
到目前爲止,這是我所:
主要邏輯代碼
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(ClearOptions.Target, Color.Black, 1, 1);
mAsteroid.Draw(mSpriteBatch);
if (mIsFired)
{
mPositions.Add(mAsteroid.LastPosition);
mRay.Fire(mPositions);
mIsFired = false;
mRay.Bullets.Clear();
mPositions.Clear();
}
base.Draw(gameTime);
}
抽獎代碼
public void Draw()
{
VertexPositionColor[] vertices = new VertexPositionColor[3];
int stopDrawing = mGraphicsDevice.Viewport.Width/mGraphicsDevice.Viewport.Height;
for (int i = 0; i < mRayPos.Length(); ++i)
{
vertices[0].Position = new Vector3(mRayPos.X, mRayPos.Y + 5f, 10);
vertices[0].Color = Color.Blue;
vertices[1].Position = new Vector3(mRayPos.X - 5f, mRayPos.Y - 5f, 10);
vertices[1].Color = Color.White;
vertices[2].Position = new Vector3(mRayPos.X + 5f, mRayPos.Y - 5f, 10);
vertices[2].Color = Color.Red;
mShader.CurrentTechnique.Passes[0].Apply();
mGraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.TriangleStrip, vertices, 0, 1);
mRayPos += new Vector2(0, 1f);
mGraphicsDevice.ReferenceStencil = 1;
}
}
你可以將它剝離爲我們的裸骨頭例子嗎?所以我們可以在我們的個人電腦上覆制它(+1只是問題標題...笑) –
我打開這只是爲了標題,好的一個:)你可能想改變它,但是,以吸引真正可以幫助的人你解決 – YavgenyP