public static GameSprite Create(GameObject.Category cate, GameSprite.Name name, float x, float y, Image.Name imgName) { Image img = ImageManager.getInstance().FindImageByName(imgName); Debug.Assert(img != null); float w; float h; // For missile and bomb, we don't need a square if (cate == GameObject.Category.Missile) { w = 2.5f; h = 10.0f; } else if (cate == GameObject.Category.Bomb) { w = 5f; h = 20f; } else if (cate == GameObject.Category.Wall) { w = 896f; h = 1f; } else { w = 50f; h = 50f; } return(pGameSpriteManager.AddGameSprite(cate, name, 0f, 1.0f, 1.0f, x, y, img, 400f, 500f, w, h)); }
// Factory method for creating composite type public static GameSprite CreateCompositeSprite(GameObject.Category cate, GameObject.CompositeType cType, float x, float y, Image.Name imgName) { Image img = ImageManager.getInstance().FindImageByName(imgName); Debug.Assert(img != null); GameSprite ret = pGameSpriteManager.AddGameSprite(cate , GameSprite.Name.NullObject, 0f, 1.0f, 1.0f, x, y, img, 400f, 700f, 1f, 1f); // give it the composite type specified ret.pGameObject.compositeType = cType; ret.pGameObject.collidable = false; ret.pGameObject.isComposite = true; // show red box for grid if (cType == GameObject.CompositeType.Grid) { ret.pGameObject.colliRect.setColor(0, 255, 0); } // show green box for column else if (cType == GameObject.CompositeType.Column) { ret.pGameObject.colliRect.setColor(255, 0, 0); } return(ret); }
public void addImage(Image.Name imgName) { if (this.pImageQueue == null) { this.pImageQueue = new ImageHolderMan(); } Image img = ImageManager.getInstance().FindImageByName(imgName); this.pCrntImgHolder = this.pImageQueue.AddImageHolder(img); }
public static GameSprite CreateGameSprite(GameObject.Category cate, GameSprite.Name name, SpriteBatch.Name sbName , float x, float y, float w, float h, Image.Name imgName) { Image img = ImageManager.getInstance().FindImageByName(imgName); Debug.Assert(img != null); GameSprite ret = pGameSpriteManager.AddGameSprite(cate, name, 0f, 1.0f, 1.0f, x, y, img, 400f, 500f, w, h); // Add to sprite batch SpriteBatch sb = SpriteBatchManager.getInstance().FindSpriteBatchByName(sbName); Debug.Assert(sb != null); sb.AddSprite(ret); // When Show collision box toggled on, add collision box to the batch as well if (GlobalConfiguration.showCollisionRect == true) { sb.AddSprite(ret.pGameObject.colliRect.box); } return(ret); }
//----------------------------------------------------------------------------- // Game::LoadContent() // Allows you to load all content needed for your engine, // such as objects, graphics, etc. //----------------------------------------------------------------------------- public override void LoadContent() { // Load Shared Elements TextureManager texMgr = TextureManager.getInstance(); ImageManager imgMgr = ImageManager.getInstance(); // Load Textures texMgr.AddTexture(Texture.Name.Alien, "Invaders_0.tga"); texMgr.AddTexture(Texture.Name.Shield, "birds_N_shield.tga"); texMgr.AddTexture(Texture.Name.Font, "Consolas36pt.tga"); // Load Glyphs GlyphManager.getInstance().AddXml(Glyph.Name.Consolas36pt, "Consolas36pt.xml", Texture.Name.Font); // Load Images imgMgr.AddImage(Image.Name.Squid_1, Texture.Name.Alien, 610.0f, 25.0f, 119.0f, 122.0f); imgMgr.AddImage(Image.Name.Squid_2, Texture.Name.Alien, 610.0f, 173.0f, 119.0f, 122.0f); imgMgr.AddImage(Image.Name.Crab_1, Texture.Name.Alien, 316.0f, 25.0f, 166.0f, 119.0f); imgMgr.AddImage(Image.Name.Crab_2, Texture.Name.Alien, 316.0f, 180.0f, 166.0f, 119.0f); imgMgr.AddImage(Image.Name.Octopus_1, Texture.Name.Alien, 57.0f, 16.0f, 197.0f, 132.0f); imgMgr.AddImage(Image.Name.Octopus_2, Texture.Name.Alien, 57.0f, 170.0f, 197.0f, 132.0f); imgMgr.AddImage(Image.Name.Ship, Texture.Name.Alien, 50f, 331f, 193f, 126f); imgMgr.AddImage(Image.Name.Missile, Texture.Name.Alien, 417f, 698f, 19f, 60f); imgMgr.AddImage(Image.Name.Nothing, Texture.Name.Alien, 21f, 480f, 341, 14f); imgMgr.AddImage(Image.Name.Brick, Texture.Name.Shield, 20, 210, 10, 5); imgMgr.AddImage(Image.Name.BrickLeft_Top0, Texture.Name.Shield, 15, 180, 10, 5); imgMgr.AddImage(Image.Name.BrickLeft_Top1, Texture.Name.Shield, 15, 185, 10, 5); imgMgr.AddImage(Image.Name.BrickLeft_Bottom, Texture.Name.Shield, 35, 215, 10, 5); imgMgr.AddImage(Image.Name.BrickRight_Top0, Texture.Name.Shield, 75, 180, 10, 5); imgMgr.AddImage(Image.Name.BrickRight_Top1, Texture.Name.Shield, 75, 185, 10, 5); imgMgr.AddImage(Image.Name.BrickRight_Bottom, Texture.Name.Shield, 55, 215, 10, 5); imgMgr.AddImage(Image.Name.DaggerBomb, Texture.Name.Alien, 275, 795, 43, 88); imgMgr.AddImage(Image.Name.RollingBomb, Texture.Name.Alien, 486, 639, 50, 106); imgMgr.AddImage(Image.Name.ZigzagBomb, Texture.Name.Alien, 570, 639, 50, 106); imgMgr.AddImage(Image.Name.AlienExplosion, Texture.Name.Alien, 567, 484, 197, 125); imgMgr.AddImage(Image.Name.ShipExplosion, Texture.Name.Alien, 558, 334, 228, 120); imgMgr.AddImage(Image.Name.MissileExplosion, Texture.Name.Alien, 698, 796, 94, 121); imgMgr.AddImage(Image.Name.UFOExplosion, Texture.Name.Alien, 40, 643, 295, 112); imgMgr.AddImage(Image.Name.UFO, Texture.Name.Alien, 76, 501, 240, 107); SpriteBatchManager.getInstance().AddSpriteBatch(SpriteBatch.Name.Shared, 2); GameSprite Ship = GameSpriteFactory.CreateGameSprite(GameObject.Category.Ship, GameSprite.Name.Ship, SpriteBatch.Name.Shared, 400f, 150f, 40.0f, 25.0f, Image.Name.Ship); GameSprite Missile = GameSpriteFactory.CreateGameSprite(GameObject.Category.Missile, GameSprite.Name.Missile, SpriteBatch.Name.Shared, 400f, -40f, 4f, 10f, Image.Name.Missile); GameSprite WallTop = GameSpriteFactory.CreateGameSprite(GameObject.Category.Wall, GameSprite.Name.TopWall, SpriteBatch.Name.Shared, 448f, 940f, 896f, 0.1f, Image.Name.Nothing); GameSprite WallBottom = GameSpriteFactory.CreateGameSprite(GameObject.Category.Wall, GameSprite.Name.BottomWall, SpriteBatch.Name.Shared, 448f, 137.5f, 1000f, 0.1f, Image.Name.Nothing); GameSprite WallLeft = GameSpriteFactory.CreateGameSprite(GameObject.Category.Wall, GameSprite.Name.LeftWall, SpriteBatch.Name.Shared, 30f, 512f, 0.1f, 1024f, Image.Name.Nothing); GameSprite WallRight = GameSpriteFactory.CreateGameSprite(GameObject.Category.Wall, GameSprite.Name.RightWall, SpriteBatch.Name.Shared, 866f, 512f, 0.1f, 1024f, Image.Name.Nothing); GameSprite DaggerBomb = GameSpriteFactory.CreateGameSprite(GameObject.Category.Bomb, GameSprite.Name.DaggerBomb, SpriteBatch.Name.Shared, 900f, 800f, 7f, 15f, Image.Name.DaggerBomb); GameSprite ZigzagBomb = GameSpriteFactory.CreateGameSprite(GameObject.Category.Bomb, GameSprite.Name.ZigZagBomb, SpriteBatch.Name.Shared, 900f, 800f, 7f, 15f, Image.Name.ZigzagBomb); GameSprite RollingBomb = GameSpriteFactory.CreateGameSprite(GameObject.Category.Bomb, GameSprite.Name.RollingBomb, SpriteBatch.Name.Shared, 900f, 800f, 7f, 15f, Image.Name.RollingBomb); GameSprite UFO = GameSpriteFactory.CreateGameSprite(GameObject.Category.UFO, GameSprite.Name.UFO, SpriteBatch.Name.Shared, 960f, 900f, 50f, 20f, Image.Name.UFO); ProjectileTracker.setMissile(Missile.pGameObject, Ship.pGameObject); ProjectileTracker.setBombs(DaggerBomb.pGameObject, ZigzagBomb.pGameObject, RollingBomb.pGameObject); ProjectileTracker.setWalls(WallLeft.pGameObject, WallRight.pGameObject, WallTop.pGameObject, WallBottom.pGameObject); ProjectileTracker.pUFO = UFO.pGameObject; // Bind keys events SubjectManager subjectMgr = SubjectManager.getInstance(); subjectMgr.CreateAllSubjects(); subjectMgr.FindSubjectByName(Subject.Name.LeftKey).Subscribe(Ship.pGameObject); subjectMgr.FindSubjectByName(Subject.Name.RightKey).Subscribe(Ship.pGameObject); subjectMgr.FindSubjectByName(Subject.Name.SpaceKey).Subscribe(Missile.pGameObject); // Load Start and score screen StartScreenState.getInstance().load(); ToPlayer1State.getInstance().load(); ToPlayer2State.getInstance().load(); GameOverState.getInstance().load(); // Load player1 PlayerOneState.getInstance().load(); // Swap timer instance to load player2 TimerManager.SwapInstance(); ColliPairManager.SwapInstance(); // Load Player2 PlayerTwoState.getInstance().load(); //Swap back to start with player 1 ColliPairManager.SwapInstance(); TimerManager.SwapInstance(); }
public GameObject CreateShield(SpriteBatch.Name sbName, float center_x, float center_y, float brickWidth, float brickHeight) { // create a grid first GameSprite gridSprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Grid, 400f, 400f, Image.Name.Nothing); GameObject grid = gridSprite.pGameObject; // Create column and bricks // Set parameter float start_x = center_x - 3.5f * brickWidth; float start_y = center_y - 5.0f * brickHeight; // Load Images Image imgBrick = ImageManager.getInstance().FindImageByName(Image.Name.Brick); Image imgBrickLeft_Top0 = ImageManager.getInstance().FindImageByName(Image.Name.BrickLeft_Top0); Image imgBrickLeft_Top1 = ImageManager.getInstance().FindImageByName(Image.Name.BrickLeft_Top1); Image imgBrickLeft_Bottom = ImageManager.getInstance().FindImageByName(Image.Name.BrickLeft_Bottom); Image imgBrickRight_Top0 = ImageManager.getInstance().FindImageByName(Image.Name.BrickRight_Top0); Image imgBrickRight_Top1 = ImageManager.getInstance().FindImageByName(Image.Name.BrickRight_Top1); Image imgBrickRight_Bottom = ImageManager.getInstance().FindImageByName(Image.Name.BrickRight_Bottom); // Create column 1/7 (bricks created from bottom to top) GameSprite col_1_Sprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Column, 400f, 400f, Image.Name.Nothing); GameObject col_1 = col_1_Sprite.pGameObject; col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 0 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 1 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 2 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 3 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 4 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 5 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 6 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 7 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 8 * brickHeight, brickWidth, brickHeight, imgBrickLeft_Top1).pGameObject); col_1.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x, start_y + 9 * brickHeight, brickWidth, brickHeight, imgBrickLeft_Top0).pGameObject); // Create column 2/7 GameSprite col_2_Sprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Column, 400f, 400f, Image.Name.Nothing); GameObject col_2 = col_2_Sprite.pGameObject; col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 0 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 1 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 2 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 3 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 4 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 5 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 6 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 7 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 8 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_2.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 1 * brickWidth, start_y + 9 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); // Create column 3/7 GameSprite col_3_Sprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Column, 400f, 400f, Image.Name.Nothing); GameObject col_3 = col_3_Sprite.pGameObject; col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 2 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 3 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 4 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 5 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 6 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 7 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 8 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_3.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 2 * brickWidth, start_y + 9 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); // Create column 4/7 GameSprite col_4_Sprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Column, 400f, 400f, Image.Name.Nothing); GameObject col_4 = col_4_Sprite.pGameObject; col_4.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 3 * brickWidth, start_y + 3 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_4.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 3 * brickWidth, start_y + 4 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_4.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 3 * brickWidth, start_y + 5 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_4.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 3 * brickWidth, start_y + 6 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_4.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 3 * brickWidth, start_y + 7 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_4.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 3 * brickWidth, start_y + 8 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_4.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 3 * brickWidth, start_y + 9 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); // Create column 5/7 GameSprite col_5_Sprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Column, 400f, 400f, Image.Name.Nothing); GameObject col_5 = col_5_Sprite.pGameObject; col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 2 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 3 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 4 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 5 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 6 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 7 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 8 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_5.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 4 * brickWidth, start_y + 9 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); // Create column 6/7 GameSprite col_6_Sprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Column, 400f, 400f, Image.Name.Nothing); GameObject col_6 = col_6_Sprite.pGameObject; col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 0 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 1 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 2 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 3 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 4 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 5 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 6 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 7 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 8 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_6.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 5 * brickWidth, start_y + 9 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); // Create column 7/7 GameSprite col_7_Sprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.Shield , GameObject.CompositeType.Column, 400f, 400f, Image.Name.Nothing); GameObject col_7 = col_7_Sprite.pGameObject; col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 0 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 1 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 2 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 3 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 4 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 5 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 6 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 7 * brickHeight, brickWidth, brickHeight, imgBrick).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 8 * brickHeight, brickWidth, brickHeight, imgBrickRight_Top1).pGameObject); col_7.AddChild(GameSpriteFactory.CreateShieldSprite(sbName, start_x + 6 * brickWidth, start_y + 9 * brickHeight, brickWidth, brickHeight, imgBrickRight_Top0).pGameObject); // Add Columns to Grid grid.AddChild(col_1); grid.AddChild(col_2); grid.AddChild(col_3); grid.AddChild(col_4); grid.AddChild(col_5); grid.AddChild(col_6); grid.AddChild(col_7); // Add to sprite batch SpriteBatch sb = SpriteBatchManager.getInstance().FindSpriteBatchByName(sbName); sb.AddSprite(gridSprite); sb.AddSprite(col_1_Sprite); sb.AddSprite(col_2_Sprite); sb.AddSprite(col_3_Sprite); sb.AddSprite(col_4_Sprite); sb.AddSprite(col_5_Sprite); sb.AddSprite(col_6_Sprite); sb.AddSprite(col_7_Sprite); return(grid); }
// create 5 * 11 alien grid for given player at given location public static GameObject CreateAlienGrid(SpriteBatch.Name sbName, float x, float y) { // squid // crab // octopus GameSprite alienGridSprite = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.AlienGrid, GameObject.CompositeType.Grid , x, y, Image.Name.Nothing); Image explosionImage = ImageManager.getInstance().FindImageByName(Image.Name.AlienExplosion); GlobalPlayerStats.playerstats pStats; if (sbName == SpriteBatch.Name.Player1) { pStats = GlobalPlayerStats.Player1; } else { pStats = GlobalPlayerStats.Player2; } GameObject alienGrid = alienGridSprite.pGameObject; // 11 columns for (int i = 0; i < 11; i++) { GameSprite.Name gName; Image.Name imgName; Image.Name altImgName; GameSprite gs; SwapImgAnimation swapAni; GameSprite alienCol = GameSpriteFactory.CreateCompositeSprite(GameObject.Category.AlienCol, GameObject.CompositeType.Column , x, y, Image.Name.Nothing); // 5 rows for (int j = 0; j < 5; j++) { if (j == 0) { gName = GameSprite.Name.Squid; imgName = Image.Name.Squid_1; altImgName = Image.Name.Squid_2; } else if (j < 3) { gName = GameSprite.Name.Crab; imgName = Image.Name.Crab_1; altImgName = Image.Name.Crab_2; } else { gName = GameSprite.Name.Octopus; imgName = Image.Name.Octopus_1; altImgName = Image.Name.Octopus_2; } gs = CreateGameSprite(GameObject.Category.Alien, gName, sbName, x + i * 60f, y - j * 55f, 40.0f, 40.0f, imgName); gs.addImage(altImgName); gs.pExplosionImage = explosionImage; // Add SwapImage animations swapAni = new SwapImgAnimation(gs.pGameObject, 1.0f - 0.05f * pStats.currentLevel); TimerManager.getInstance().Add(TimerEvent.Name.SwapImageAnimation, swapAni, 1.0f - 0.05f * pStats.currentLevel); // Add Sprite to column alienCol.pGameObject.AddChild(gs.pGameObject); } // Set Bomb Dropping logic alienCol.pGameObject.dropID = i; BombDropCommand dropCmd = new BombDropCommand(alienCol.pGameObject, pStats.currentLevel); TimerManager.getInstance().Add(TimerEvent.Name.DropBombCommand, dropCmd, 3.0f - 0.2f * pStats.currentLevel); // --add col to the batch SpriteBatchManager.getInstance().FindSpriteBatchByName(sbName).AddSprite(alienCol); alienGrid.AddChild(alienCol.pGameObject); } // Configure alien advance animation alienGrid.CompositeSetDelta(20.0f); AlienAdvanceAnimation alienAdv = new AlienAdvanceAnimation(alienGrid, 1.0f - 0.05f * pStats.currentLevel); TimerManager.getInstance().Add(TimerEvent.Name.AlienAdvanceAnimation, alienAdv, 1.0f - 0.1f * pStats.currentLevel); // -- add grid to the batch if (GlobalConfiguration.showCollisionRect) { SpriteBatchManager.getInstance().FindSpriteBatchByName(sbName).AddSprite(alienGrid.colliRect.box); } SpriteBatchManager.getInstance().FindSpriteBatchByName(sbName).AddSprite(alienGridSprite); return(alienGrid); }