public void Init() { stopwatch.Start(); lastTime = stopwatch.ElapsedMilliseconds; //Load and position the tank tankSprite.Load("tankBlue_outline.png"); tankSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); tankSprite.SetPosition(-tankSprite.Width / 2.0f, tankSprite.Height / 2.0f); //Load and position the green bullet to make the sprite go straight of the turrent bulletSprite.Load("bulletGreenSilver_outline.png"); bulletSprite.SetRotate(90 * (float)(Math.PI / 180.0f)); bulletSprite.imgScale = 0.5f; //Load and position the turret turrentSprite.Load("barrelBlue.png"); turrentSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); turrentSprite.SetPosition(0, turrentSprite.Width / 2.0f); //Add child to the parent bulletObject.AddChild(bulletSprite); turrentObject.AddChild(turrentSprite); tankObject.AddChild(tankSprite); tankObject.AddChild(turrentObject); //Set the position of the tank in the middle tankObject.SetPosition(rl.GetScreenWidth() / 2.0f, rl.GetScreenHeight() / 2.0f); }
public void Init() { stopwatch.Start(); lastTime = stopwatch.ElapsedMilliseconds; tankSprite.Load("tankBlue_outline.png"); //This loads the image of the tank's body tankSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); //This tells command to have ths image rotated by -90 degrees. tankSprite.SetPosition(-tankSprite.Width / 2.0f, tankSprite.Height / 2.0f); //This sets the tank's starting position to //it's sprite's width and height. tankSprite.corners[0].SetPosition(tankSprite.Width / 2 + 41, tankSprite.Height / 2 + 40); tankSprite.corners[1].SetPosition(-tankSprite.Width / 2 + 41, tankSprite.Height / 2 + 40); tankSprite.corners[2].SetPosition(tankSprite.Width / 2 + 41, -tankSprite.Height / 2 + 40); tankSprite.corners[3].SetPosition(-tankSprite.Width / 2 + 41, -tankSprite.Height / 2 + 40); turretSprite.Load("barrelBlue.png"); //This loads the image of the tank's barrel turretSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); //This tells command to have ths image rotated by -90 degrees. turretSprite.SetPosition(turretSprite.Width / 1.5f, turretSprite.Width / 2.0f); //This sets the tank's starting position to //it's sprite's width and height. turretSprite.corners[0].SetPosition(turretSprite.Width / 2, turretSprite.Height / 2); turretSprite.corners[1].SetPosition(-turretSprite.Width / 2 + 10, turretSprite.Height / 2 + 10); turretSprite.corners[2].SetPosition(turretSprite.Width / 2 + 8, -turretSprite.Height / 2 + 1); turretSprite.corners[3].SetPosition(-turretSprite.Width / 2 + 10, -turretSprite.Height / 2 + 10); boxSprite.SetPosition(boxSprite.Width / 2, boxSprite.Height / 2); boxSprite.corners[0].SetPosition(40, 40); boxSprite.corners[1].SetPosition(-40, 40); boxSprite.corners[2].SetPosition(40, -40); boxSprite.corners[3].SetPosition(-40, -40); tankObject.AddChild(tankSprite); //This makes "tankObject" become the parent of "tankSprite" tankObject.AddChild(turretObject); //This makes "tankObject" become the parent of "turretObject" turretObject.AddChild(turretSprite); //This makes "turretObject" become the parent of "tankSprite" boxObject.AddChild(boxSprite); boxObject.SetPosition(500, 240); tankObject.SetPosition(GetScreenWidth() / 2.0f, GetScreenHeight() / 2.0f); //This sets the tankObject's position to the //Screen's Width and Height. }
public void Init() { stopwatch.Start(); lastTime = stopwatch.ElapsedMilliseconds; tankSprite.Load("tankblue_outline.png"); tankSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); tankSprite.SetPosition(-tankSprite.Width / 2.0f, tankSprite.Height / 2.0f); turretSprite.Load("barrelBlue.png"); turretSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); turretSprite.SetPosition(0, turretSprite.Width / 2.0f); turretObject.AddChild(turretSprite); tankObject.AddChild(tankSprite); tankObject.AddChild(turretObject); tankObject.SetPosition(GetScreenWidth() / 2.0f, GetScreenHeight() / 2.0f); }
public void Init(List<Body> bodys, List<Barrel> barels, int player) { bodies = bodys; barrels = barels; bodyPick = 0; gunPick = 0; SetBody(0); SetGun(0); reload = reloading; armor = maxArmor; if (player == 1) { tankObject.SetRotate(0); } if (player == 2) { tankObject.SetRotate(180 * (float)(Math.PI / 180.0f)); } tankSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); tankSprite.SetPosition(-tankSprite.Width / 2.0f, tankSprite.Height / 2.0f); turretSprite.SetRotate(-90 * (float)(Math.PI / 180.0f)); turretSprite.SetPosition(-10, turretSprite.Width / 2.0f); tankObject.AddChild(tankSprite); tankObject.AddChild(turretObject); turretObject.AddChild(turretSprite); turretObject.AddChild(turretSprite); tankObject.AddChild(tankTL); tankObject.AddChild(tankTR); tankObject.AddChild(tankBL); tankObject.AddChild(tankBR); tankTL.SetPosition(-tankSprite.Height / 2, -tankSprite.Width / 2); tankTR.SetPosition(tankSprite.Height / 2, -tankSprite.Width / 2); tankBR.SetPosition(tankSprite.Height / 2, tankSprite.Width / 2); tankBL.SetPosition(-tankSprite.Height / 2, tankSprite.Width / 2); tankObject.myPoints.Add(tankTL.position); tankObject.myPoints.Add(tankTR.position); tankObject.myPoints.Add(tankBR.position); tankObject.myPoints.Add(tankBL.position); turretSprite.AddChild(shotFX); shotSprite.Load("Resources/shotLarge.png"); shotFX.AddChild(shotSprite); shotFX.SetPosition(turretSprite.Width / 2.0f, turretSprite.Height); shotSprite.SetPosition(-(shotSprite.Width / 2.0f), 0); }
public void Update() { currentTime = stopwatch.ElapsedMilliseconds; deltaTime = (currentTime - lastTime) / 1000.0f; Timer coolDown = new Timer(); timer += deltaTime; if (timer >= 1) { fps = frames; frames = 0; timer -= 1; } frames++; #region Movement if (IsKeyDown(KeyboardKey.KEY_A)) { tankObject.Rotate(-deltaTime); } if (IsKeyDown(KeyboardKey.KEY_D)) { tankObject.Rotate(deltaTime); } if (IsKeyDown(KeyboardKey.KEY_W)) { //MathHelpers.Vector3 facing = new MathHelpers.Vector3( // tankObject.LocalTransform.m[0], // tankObject.LocalTransform.m[1], 1) * deltaTime * 100; //tankObject.Translate(facing.x, facing.y); MathHelpers.Vector3 facing = new MathHelpers.Vector3( tankObject.LocalTransform.m1, tankObject.LocalTransform.m2, 1) * deltaTime * 100; tankObject.Translate(facing.x, facing.y); } if (IsKeyDown(KeyboardKey.KEY_S)) { //MathHelpers.Vector3 facing = new MathHelpers.Vector3( //tankObject.LocalTransform.m[0], //tankObject.LocalTransform.m[1], 1) * deltaTime * -100; //tankObject.Translate(facing.x, facing.y); MathHelpers.Vector3 facing = new MathHelpers.Vector3( tankObject.LocalTransform.m1, tankObject.LocalTransform.m2, 1) * deltaTime * -100; tankObject.Translate(facing.x, facing.y); } if (IsKeyDown(KeyboardKey.KEY_Q)) { turretObject.Rotate(-deltaTime); } if (IsKeyDown(KeyboardKey.KEY_E)) { turretObject.Rotate(deltaTime); } #endregion Movement //Spawns a projectile that moves in the direction the barrel was pointed when pressed. if (IsKeyPressed(KeyboardKey.KEY_SPACE)) { Projectile shell = new Projectile(turretObject.GlobalTransform.m5, -turretObject.GlobalTransform.m4); shell.SetPosition(turretObject.GlobalTransform.m7, turretObject.GlobalTransform.m8); shellObject.AddChild(shell); //MathHelpers.Vector3 facing = new MathHelpers.Vector3 ( // tankObject.LocalTransform.m1, // tankObject.LocalTransform.m2, 1) *deltaTime * -1000; //tankObject.Translate(facing.x, facing.y); } //Checks to see if the player's collider interacts with the green box. if (boxCollider.Overlaps(playerCollider)) { boxColor = Color.DARKGREEN; } else { boxColor = Color.GREEN; } //Goes through the children of shellObject and checks their lifespans. //If they expire they are removed from the shellObject. for (int i = 0; i < shellObject.GetChildCount(); i++) { if (shellObject.GetChild(i).proDel) { shellObject.RemoveChild(shellObject.GetChild(i)); } } for (int i = 0; i < shellObject.GetChildCount(); i++) { Projectile tShell = (Projectile)shellObject.GetChild(i); //If the green box isn't currently overlapping with the player //it will check if it's overlapping with a projectile; if it is, it will turn red. if (!boxCollider.Overlaps(playerCollider)) { if (tShell.projectileCollider.Overlaps(boxCollider)) { boxColor = Color.RED; break; } else { boxColor = Color.GREEN; } } } tankObject.UpdateTransform(); //Moves the collider in tandem with the tank by "resizing" it to the current dimensions //(and by extent, the position) of the player. playerCollider.Resize(new MathHelpers.Vector3(tankObject.GlobalTransform.m7 - (tankSprite.Width / 2), tankObject.GlobalTransform.m8 - (tankSprite.Height / 2), 0), new MathHelpers.Vector3(tankObject.GlobalTransform.m7 + (tankSprite.Width / 2), tankObject.GlobalTransform.m8 + (tankSprite.Height / 2), 0)); Vector2 v2 = new Vector2(900, 24); lastTime = currentTime; // foreach (SceneObject i in Hierarchy) { i.Update(deltaTime); } }
public void Update() //This is constantly Updating. { currentTime = stopwatch.ElapsedMilliseconds; deltaTime = (currentTime - lastTime) / 1000.0f; timer += deltaTime; if (timer >= 1) { fps = frames; frames = 0; timer -= 1; } frames++; if (IsKeyDown(KeyboardKey.KEY_A)) //Key A { tankObject.Rotate(-deltaTime); } if (IsKeyDown(KeyboardKey.KEY_D)) //Key D { tankObject.Rotate(deltaTime); } if (IsKeyDown(KeyboardKey.KEY_W)) //Key W { Vector3 facing = new Vector3(tankObject.GlobalTransform.m1, tankObject.GlobalTransform.m2, 1) * deltaTime * 100; tankObject.Translate(facing.x, facing.y); } if (IsKeyDown(KeyboardKey.KEY_S)) //Key S { Vector3 facing = new Vector3(tankObject.GlobalTransform.m1, tankObject.GlobalTransform.m2, 1) * deltaTime * -100; tankObject.Translate(facing.x, facing.y); } if (IsKeyDown(KeyboardKey.KEY_Q)) //Key Q { turretObject.Rotate(-deltaTime); } if (IsKeyDown(KeyboardKey.KEY_E)) //Key E { turretObject.Rotate(deltaTime); } if (IsKeyPressed(KeyboardKey.KEY_SPACE)) //Key SpaceBar { SceneObject bulletObject = new SceneObject(); SpriteObject bulletSprite = new SpriteObject(); bulletSprites.Add(bulletSprite); bulletObject.AddChild(bulletSprite); turretObject.AddChild(bulletObject); bulletSprite.Load("bulletBlue.png"); bulletSprite.SetRotate(90 * (float)(Math.PI / 180.0f)); bulletObject.SetPosition(55f, -6); bulletSprite.corners[0].SetPosition(bulletSprite.Width, bulletSprite.Height); bulletSprite.corners[1].SetPosition(-bulletSprite.Width + 9, bulletSprite.Height); bulletSprite.corners[2].SetPosition(bulletSprite.Width, -bulletSprite.Height + 25); bulletSprite.corners[3].SetPosition(-bulletSprite.Width + 10, -bulletSprite.Height + 25); tankObject.UpdateTransform(); bulletObjects.Add(bulletObject); turretObject.RemoveChild(bulletObject); bulletObject.UpdateTransform(); } tankObject.Update(deltaTime); boxObject.Update(deltaTime); for (int i = 0; i < bulletObjects.Count; i++) { Vector3 facing = new Vector3(bulletObjects[i].LocalTransform.m1, bulletObjects[i].LocalTransform.m2, 1) * deltaTime * 250; bulletObjects[i].Translate(facing.x, facing.y); bulletObjects[i].Update(deltaTime); } for (int i = 0; i < bulletSprites.Count; i++) { if (bulletSprites[i].boxCollider.Overlaps(boxSprite.boxCollider)) { boxSprite.color = Color.YELLOW; break; } else { boxSprite.color = Color.BLUE; } } lastTime = currentTime; }