public loadGraphic ( String textureName, int width, int height ) : void | ||
textureName | String | |
width | int | |
height | int | |
리턴 | void |
public override void Create() { logo = new Sprite(); logo.screenPositioning = ScreenPositioning.Absolute; logo.loadGraphic("loadingScreen", 640, 360); add(logo); Assets.getSound("bading").Play(0.6f, 0, 0); G.DoInSeconds(1.5f, () => { G.switchState(new MenuState(), "gate"); }); }
public HealthBar(Player player, Sprite scoreBoard) : base() { this.player = player; this.scoreBoard = scoreBoard; switch(player.courtPosition) { case CourtPosition.TopLeft: x = ((PlayState.ARENA_WIDTH - HUD.SCOREBOARD_WIDTH) / 2) + BAR_OFFSET_X; y = -HUD.SCOREBOARD_HEIGHT - HUD.SCOREBOARD_OFFSET + BAR_OFFSET_TOP_Y; imageIndex = new Vector2(0, 0); break; case CourtPosition.TopRight: x = scoreBoard.x + scoreBoard.width - BAR_WIDTH - BAR_OFFSET_X; y = -HUD.SCOREBOARD_HEIGHT - HUD.SCOREBOARD_OFFSET + BAR_OFFSET_TOP_Y; imageIndex = new Vector2(1, 0); break; case CourtPosition.BottomLeft: x = ((PlayState.ARENA_WIDTH - HUD.SCOREBOARD_WIDTH) / 2) + BAR_OFFSET_X; y = -HUD.SCOREBOARD_HEIGHT - HUD.SCOREBOARD_OFFSET + BAR_OFFSET_BOTTOM_Y; imageIndex = new Vector2(0, 1); break; case CourtPosition.BottomRight: x = scoreBoard.x + scoreBoard.width - BAR_WIDTH - BAR_OFFSET_X; y = -HUD.SCOREBOARD_HEIGHT - HUD.SCOREBOARD_OFFSET + BAR_OFFSET_BOTTOM_Y; imageIndex = new Vector2(1, 1); break; } hurtHealth = new Sprite(x, y); hurtHealth.loadGraphic("healthBar", BAR_WIDTH, BAR_HEIGHT); hurtHealth.color = new Color(0xcb, 0x00, 0x07); healthBars.add(hurtHealth); realHealth = new Sprite(x, y); realHealth.loadGraphic("healthBar", BAR_WIDTH, BAR_HEIGHT); healthBars.add(realHealth); healHealth = new Sprite(x, y); healHealth.loadGraphic("healthBar", BAR_WIDTH, BAR_HEIGHT); healthBars.add(healHealth); add(healthBars); hurtHealth.sheetOffset = realHealth.sheetOffset = healHealth.sheetOffset = new Vector2(imageIndex.X * BAR_WIDTH, imageIndex.Y * BAR_HEIGHT); }
public RoundMarker(float X, float Y, bool lit, Color color) : base() { marker = new Sprite(X, Y); markerShadow = new Sprite(X, Y); marker.loadGraphic("roundMarker", 8, 8); markerShadow.loadGraphic("roundMarkerBackground", 8, 8); marker.color = color; if(lit) { marker.sheetOffset.X = markerShadow.sheetOffset.X = 8; } add(markerShadow); add(marker); }
public HUD(Group players) : base() { scoreBoardBackground = new Sprite(0, 0); scoreBoardBackground.loadGraphic("scoreBoardBackground", SCOREBOARD_WIDTH, SCOREBOARD_HEIGHT); scoreBoardBackground.x = (PlayState.ARENA_WIDTH - SCOREBOARD_WIDTH) / 2; scoreBoardBackground.y = -SCOREBOARD_HEIGHT - SCOREBOARD_OFFSET; scoreBoardBackground.color = Color.White; add(scoreBoardBackground); scoreBoard = new Sprite(0, 0); scoreBoard.loadGraphic("scoreBoard", SCOREBOARD_WIDTH, SCOREBOARD_HEIGHT); scoreBoard.x = (PlayState.ARENA_WIDTH - SCOREBOARD_WIDTH) / 2; scoreBoard.y = -SCOREBOARD_HEIGHT - SCOREBOARD_OFFSET; scoreBoard.color = new Color(0x3a, 0xc3, 0x83); add(scoreBoard); players.Each<Player>((player) => { HealthBar healthBar = new HealthBar(player, scoreBoard); Sprite controllerIcon = new Sprite( healthBar.x + (player.onLeft ? -ICON_OFFSET_X : HealthBar.BAR_WIDTH + ICON_OFFSET_X - ICON_SIZE), healthBar.y + ICON_OFFSET_Y); controllerIcon.loadGraphic("controllerIcon", ICON_SIZE, ICON_SIZE); controllerIcon.color = scoreBoard.color; controllerIcon.sheetOffset.X = controllerIcon.GraphicWidth * (int)player.playerIndex; add(healthBar); add(controllerIcon); }); add(new Timer(scoreBoard.color)); for(int i = 1; i <= GameTracker.RoundsToWin; i++) { add(new RoundMarker( PlayState.ARENA_WIDTH/2 - 8 - ROUND_MARKER_OFFSET_X - (i * ROUND_MARKER_SPACING), scoreBoard.y + ROUND_MARKER_OFFSET_Y, GameTracker.RoundsWon[Team.Left] >= i, scoreBoard.color)); add(new RoundMarker( PlayState.ARENA_WIDTH/2 + ROUND_MARKER_OFFSET_X + (i * ROUND_MARKER_SPACING), scoreBoard.y + ROUND_MARKER_OFFSET_Y, GameTracker.RoundsWon[Team.Right] >= i, scoreBoard.color)); } z = HUGE_Z; }
public override void Create() { //G.playMusic("resultsMusic"); teamSelectScreen = new Sprite(); teamSelectScreen.screenPositioning = ScreenPositioning.Absolute; teamSelectScreen.loadGraphic("teamSelect", 640, 360); add(teamSelectScreen); pressStart = new Sprite(); pressStart.screenPositioning = ScreenPositioning.Absolute; pressStart.loadGraphic("begin", 49, 13); pressStart.y = 314; pressStart.x = 327; pressStart.visible = false; add(pressStart); pressBack = new Sprite(); pressBack.screenPositioning = ScreenPositioning.Absolute; pressBack.loadGraphic("begin", 50, 13); pressBack.sheetOffset.Y = 13; pressBack.y = 314; pressBack.x = 263; add(pressBack); Input.ForEachInput((i) => { playerSprites.Add(i, new Sprite(G.camera.width/2 - 16, MIDDLE_Y_OFFSET + MIDDLE_Y_SPACING*(int)i)); playerSprites[i].loadGraphic("teamSelectIcon", 32, 32); playerSprites[i].sheetOffset.X = 32 * (int)i; playerSprites[i].color = new Color(0xbd, 0xd8, 0xe5); playerSprites[i].screenPositioning = ScreenPositioning.Absolute; add(playerSprites[i]); pushActive.Add(i, new Dictionary<string, bool>()); lastPushActive.Add(i, new Dictionary<string, bool>()); direcions.ForEach((s) => { pushActive[i].Add(s, false); lastPushActive[i].Add(s, false); }); }); }
public PauseGroup(Card card, Action unPauseCallback) : base() { z = HUD.HUGE_Z + 1; this.unPauseCallback = unPauseCallback; pauseOverlay = new PauseOverlay(); add(pauseOverlay); this.card = card; add(card); controls = new Sprite(190, 148); controls.loadGraphic("controls", 251, 125); controls.visible = false; controls.screenPositioning = ScreenPositioning.Absolute; add(controls); pauseMenu = new Menu(195, 148); pauseMenu.addMenuText(new MenuText("RESUME", UnPause)); pauseMenu.addMenuText(new MenuText("CONTROLS", displayControls)); pauseMenu.addMenuText(new MenuText("RESTART", restart)); pauseMenu.addMenuText(new MenuText("QUIT", quit)); pauseMenu.deactivate(); add(pauseMenu); restartMenu = new Menu(195, 148); restartMenu.addMenuText(new MenuText("YES", () => { //Assets.getSound("superKO").Play(); Assets.getSound("startButton").Play(); restartMenu.deactivate(); card.Close(); })); restartMenu.addMenuText(new MenuText("NO", goBack)); restartMenu.deactivate(); add(restartMenu); }
public Ball(float X=0, float Y=0) : base(X,Y) { loadGraphic("ball", 16, 16); height = 6; offset.Y = 8; offset.X = -3; //drag = new Vector2(750,750); linearDrag = 0.0005f; width = 9; motionSteps = 5; //acceleration.X = 100; trail = new BallTrail(this); G.state.add(trail); addOnMoveCallback(onMove); shadow = new Sprite(0, 0); shadow.loadGraphic("ballShadow", 10, 10); shadow.color = new Color(0x1c, 0x1c, 0x1c); shadow.z = 0; G.state.add(shadow); }
public Card() : base() { background = new Sprite(0, 84); text = new Sprite(0, 89); roundNumber = new Sprite(290, 89); add(background); add(text); add(roundNumber); background.screenPositioning = text.screenPositioning = roundNumber.screenPositioning = ScreenPositioning.Absolute; background.loadGraphic("cardBackground", 640, 53); background.addAnimation("open", new List<int> { 0, 1, 2, 3 }, FRAMERATE); background.addAnimation("openLarge", new List<int> { 0, 1, 2, 4 }, FRAMERATE); background.addAnimation("hold", new List<int> { 4 }, FRAMERATE); background.addAnimation("holdLarge", new List<int> { 5 }, FRAMERATE); background.addAnimation("close", new List<int> { 3, 2, 1, 0 }, FRAMERATE); background.addAnimation("closeLarge", new List<int> { 4, 2, 1, 0 }, FRAMERATE); background.addOnCompleteCallback("open", onOpen); background.addOnCompleteCallback("openLarge", onOpen); background.addOnCompleteCallback("close", onClose); background.addOnCompleteCallback("closeLarge", onClose); text.loadGraphic("cards", 550, 46); text.addAnimation("appear", new List<int> { 0, 1 }, FRAMERATE); text.addAnimation("flash", new List<int> { 2, 1 }, FRAMERATE, true); text.addAnimation("hold", new List<int> { 1 }, FRAMERATE); text.addAnimation("fade", new List<int> { 0 }, FRAMERATE); text.addOnCompleteCallback("appear", textAppeared); text.addOnCompleteCallback("fade", textComplete); roundNumber.loadGraphic("roundNumber", 40, 40); roundNumber.addAnimation("appear", new List<int> { 0, 1 }, FRAMERATE); roundNumber.addAnimation("flash", new List<int> { 2, 1 }, FRAMERATE, true); roundNumber.addAnimation("hold", new List<int> { 1 }, FRAMERATE); roundNumber.addAnimation("fade", new List<int> { 0 }, FRAMERATE); roundNumber.visible = false; cards.Add("round", new CardInfo(false, false, true, 0)); cards.Add("final round", new CardInfo(true, false, false, 1)); cards.Add("start", new CardInfo(false, true, false, 2)); cards.Add("ko", new CardInfo(false, true, false, 3)); cards.Add("double ko", new CardInfo(false, true, false, 4)); cards.Add("time up", new CardInfo(true, false, false, 5)); cards.Add("magenta wins", new CardInfo(true, true, false, 6)); cards.Add("cyan wins", new CardInfo(true, true, false, 7)); cards.Add("paused", new CardInfo(true, false, false, 8)); cards.Add("restart?", new CardInfo(false, false, false, 9)); cards.Add("quit?", new CardInfo(true, false, false, 10)); cards.Add("controls", new CardInfo(false, false, false, 11)); visible = false; text.visible = false; text.x = (G.camera.width - text.graphicWidth) / 2; roundNumber.x = text.x + 375; z = HUD.HUGE_Z + 2; }
public override void Create() { Team winningTeam = Team.Left; new List<Team> { Team.Left, Team.Right }.ForEach((team) => { if(GameTracker.RoundsWon[team] == GameTracker.RoundsToWin) { GameTracker.MatchesWon[team]++; winningTeam = team; } }); G.playMusic("resultsMusic"); //MediaPlayer.Volume = 1f; winScreen = new Sprite(); winScreen.screenPositioning = ScreenPositioning.Absolute; winScreen.loadGraphic("winScreen", 640, 360); winScreen.sheetOffset.Y = ((int)winningTeam - 1) * 360; add(winScreen); arenaVignette = new Sprite(0, 0); arenaVignette.loadGraphic("arenaVignette", 640, 360); arenaVignette.z = 10000; arenaVignette.screenPositioning = ScreenPositioning.Absolute; add(arenaVignette); //Reset stuff in case the players want to play again GameTracker.CurrentRound = 0; GameTracker.RoundsWon[Team.Left] = 0; GameTracker.RoundsWon[Team.Right] = 0; int tallies = (int)Math.Ceiling(GameTracker.MatchesWon[Team.Left]/5f); Sprite tally; for(int i = 0; i < tallies; i++) { tally = new Sprite(); tally.loadGraphic("tallies", 48, 30); tally.screenPositioning = ScreenPositioning.Absolute; tally.sheetOffset.Y = i == tallies - 1 && GameTracker.MatchesWon[Team.Left] % 5 != 0 ? (GameTracker.MatchesWon[Team.Left]%5 - 1) * tally.height : 120; tally.y = 108 + (38 * i); tally.x = winningTeam == Team.Left ? 346 : 152; tally.color = winningTeam == Team.Left ? //new Color(0x92, 0xca, 0xd9) : new Color(0xc6, 0x79, 0xcd) : new Color(0xba, 0x8a, 0xcd); add(tally); } tallies = (int)Math.Ceiling(GameTracker.MatchesWon[Team.Right] / 5f); for(int i = 0; i < tallies; i++) { tally = new Sprite(); tally.loadGraphic("tallies", 48, 30); tally.screenPositioning = ScreenPositioning.Absolute; tally.sheetOffset.Y = i == tallies - 1 && GameTracker.MatchesWon[Team.Right] % 5 != 0 ? ((GameTracker.MatchesWon[Team.Right] % 5) - 1) * tally.height : 120; tally.y = 108 + (38 * i); tally.x = winningTeam == Team.Left ? 432 : 238; tally.color = winningTeam == Team.Left ? new Color(0x8c, 0xbe, 0xcd) : new Color(0x72, 0xc6, 0xcd); add(tally); } }
public override void Create() { G.playMusic("GameMusic"); //G.visualDebug = true; Sprite arenaBackground = new Sprite(-G.camera.x, -68 + ARENA_OFFSET_Y - 280); arenaBackground.loadGraphic("arenaBackground", 640, 640); arenaBackground.z = -10; //arenaBackground.screenPositioning = ScreenPositioning.Absolute; add(arenaBackground); Sprite arenaForeground = new Sprite(-G.camera.x, -68 + ARENA_OFFSET_Y); arenaForeground.loadGraphic("arenaForeground", 640, 360); arenaForeground.z = 9999; //arenaForeground.screenPositioning = ScreenPositioning.Absolute; add(arenaForeground); Sprite arenaVignette = new Sprite(0, 0); arenaVignette.loadGraphic("arenaVignette", 640, 360); arenaVignette.z = 10000; arenaVignette.screenPositioning = ScreenPositioning.Absolute; add(arenaVignette); Ball ball = new Ball(); ball = new Ball(ARENA_WIDTH/2 - 30, ARENA_HEIGHT/2 - 30); add(ball); balls.add(ball); ball = new Ball(ARENA_WIDTH/2 + 20, ARENA_HEIGHT/2 - 30); add(ball); balls.add(ball); ball = new Ball(ARENA_WIDTH/2 - 30, ARENA_HEIGHT/2 + 15); add(ball); balls.add(ball); ball = new Ball(ARENA_WIDTH/2 + 20, ARENA_HEIGHT/2 + 15); add(ball); balls.add(ball); balls.Each((b) => { b.addOnMoveCallback(onBallMove); }); teamPlayers.Add(Team.Left, new Group()); teamPlayers.Add(Team.Right, new Group()); //probably want to let people pick their team later teamPlayers[Team.Left].add( new Player(GameTracker.LeftPlayers[0], Team.Left, new Vector2(0, 0), CourtPosition.TopLeft)); teamPlayers[Team.Left].add( new Player(GameTracker.LeftPlayers[1], Team.Left, new Vector2(0, 1), CourtPosition.BottomLeft)); teamPlayers[Team.Right].add( new Player(GameTracker.RightPlayers[0], Team.Right, new Vector2(1, 0), CourtPosition.TopRight)); teamPlayers[Team.Right].add( new Player(GameTracker.RightPlayers[1], Team.Right, new Vector2(1, 1), CourtPosition.BottomRight)); teamPlayers[Team.Left].Each((player) => players.add(player)); teamPlayers[Team.Right].Each((player) => players.add(player)); players.Each((player) => add(player)); hud = new HUD(players); hud.visible = false; add(hud); card = new Card(); add(card); pauseGroup = new PauseGroup(card, onUnPause); add(pauseGroup); GameTracker.RoundSeconds = GameTracker.TotalSeconds; }
public override void Create() { G.playMusic("titleMusic"); titleScreen = new Sprite(); titleScreen.screenPositioning = ScreenPositioning.Absolute; titleScreen.loadGraphic("titleScreen", 640, 360); add(titleScreen); roundOption = new MenuText("ROUNDS:", () => { Assets.getSound("select").Play(0.6f, 0, 0); GameTracker.RoundsToWin = (GameTracker.RoundsToWin % 5) + 1; roundOption.valueText = rounds[GameTracker.RoundsToWin - 1].ToString(); }); roundOption.valueText = rounds[GameTracker.RoundsToWin - 1].ToString(); mainMenu = new Menu(MENU_X, 204); mainMenu.addMenuText(new MenuText("START GAME", () => { Assets.getSound("superKO").Play(); flicker = false; mainMenu.deactivate(); G.DoForSeconds(0.5f, () => { //MediaPlayer.Volume -= G.elapsed; }, () => { G.switchState(new TeamSelectState(), "gate"); }); })); mainMenu.addMenuText(new MenuText("CONTROLS", displayControls)); mainMenu.addMenuText(roundOption); //mainMenu.addMenuText(new MenuText("OPTIONS", displayOptions)); mainMenu.addMenuText(new MenuText("CREDITS", displayCredits)); mainMenu.addMenuText(new MenuText("EXIT", () => G.exit())); mainMenu.deactivate(); add(mainMenu); optionsMenu = new Menu(MENU_X, 204); //optionsMenu.addMenuText(new MenuText("ROUNDS:")); //optionsMenu.addMenuText(new MenuText("ZOOM:")); //optionsMenu.addMenuText(new MenuText("FULLSCREEN:", G.toggleFullscreen)); optionsMenu.deactivate(); add(optionsMenu); credits = new Group(); Text credit; credit = new Text("CODE", MENU_X, 204); credit.color = new Color(0x77, 0x80, 0x85); credits.add(credit); credits.add(new Text("JOSH SCHONSTAL", MENU_X, 220)); credit = new Text("ART", MENU_X, 236); credit.color = new Color(0x77, 0x80, 0x85); credits.add(credit); credits.add(new Text("IAN BROCK", MENU_X, 252)); credit = new Text("SOUND", MENU_X, 268); credit.color = new Color(0x77, 0x80, 0x85); credits.add(credit); credits.add(new Text("GUERIN MCMURRY", MENU_X, 284)); credits.visible = false; add(credits); controls = new Sprite(190, 182); controls.loadGraphic("controls", 251, 125); controls.visible = false; controls.screenPositioning = ScreenPositioning.Absolute; add(controls); DoInSeconds(2, () => { pressStart = new Text("PUSH START BUTTON"); pressStart.y = 210; pressStart.x = 259; pressStartShadow = new Text(pressStart.text); pressStartShadow.y = pressStart.y + 1; pressStartShadow.x = pressStart.x; pressStartShadow.color = Color.Black; add(pressStartShadow); add(pressStart); ready = true; }); GameTracker.MatchesWon[Team.Left] = 0; GameTracker.MatchesWon[Team.Right] = 0; GameTracker.RoundsWon[Team.Left] = 0; GameTracker.RoundsWon[Team.Right] = 0; GameTracker.LeftPlayers = new List<PlayerIndex>(); GameTracker.RightPlayers = new List<PlayerIndex>(); }