一直試圖編寫一段時間的項目即時通訊仍然在爲學校工作,即使它已完成。多方向子彈[閱讀]
我想製作一個手榴彈,可以在與敵人相撞的敵人身上射出子彈,但是我需要atm幫助的是一次向所有不同方向發射8發子彈。
這裏是我的老師給我做的代碼(我向他求助)
if (mouse.LeftButton == ButtonState.Pressed)
{
Texture2D pewTexture;
pewTexture = game.Content.Load<Texture2D>("pew");
game.firingSound.Play();
//Tweak pews to shoot at mouse, rather than just going straight on the y axis.
pew = new CPew(game, pewTexture);
pew.velocity = new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation)) * 10f + spriteVelocity;
pew.position = position + pew.velocity * 5;
//easy cheesy way:
//pew.position = position;
//pew.position.X += 15f;
//pew.position.Y -= 20f;
//super awesome cool way for cool people and celebrities
pew.position = position +
new Vector2(
texture.Width * .2f - pew.texture.Width * .2f,
-pew.texture.Height);
game.pews.Add(pew);
myFiringDelay = 10;
}
else
{
if (mouse.RightButton == ButtonState.Pressed)
{
float pi2 = (float)Math.PI * 2.0f;
int numShots = 10;
float pi2overnum = pi2/numShots;
for (int i = 0; i < numShots; i++)
{
Vector2 direction = PiToVec2(pi2overnum * i);
//particles[i].reset(position,direction, vector2.zero, 6);
game.pews[i].Reset(pew.position, direction, Vector2.Zero);
}
Vector2 PiToVec2(float piT)
{
return new Vector2((float)Math.Sin(piT), (float)Math.Cos(piT));
}
顯然這將使其在鼠標各個方向射擊右鍵點擊,但每次我嘗試它,我的遊戲崩潰直上 然後,我們有一個pew類,這是子彈,多數民衆贊成在我想要在這些方向同時拍攝
你們可能無法幫助我向你展示的代碼,我我花了一段時間尋找一種方法來做到這一點,但我似乎無法找到任何東西
以前的示例和/或源代碼將非常有幫助,至少是另一種方式來看看這個謝謝。
Showingme時墜毀,它告訴我,指數超出範圍或爲負,如果你們可以只顯示我要多向子彈ID基礎代碼開心
如果你的遊戲崩潰這將是非常有益的,以獲得相關的輸出/從調試器的錯誤讓我們能夠幫助你解決這個 –
正好放嘗試捕捉到整個方法,看看有什麼錯誤正在拋出。也取決於錯誤,我們可能需要知道pews []是什麼。另外,每次點擊加載紋理都是一個糟糕的主意,您可能需要將其設置爲參考 – RoughPlace
它會超出範圍?這意味着如果只有6個「pews」,你不能做pew [7]。所以從我看到的情況來看,當你點擊它循環10個pews時,什麼不是10? – Cyral