loadGraphic() 공개 메소드

public loadGraphic ( String textureName, int width, int height ) : void
textureName String
width int
height int
리턴 void
예제 #1
0
        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");
              });
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
파일: HUD.cs 프로젝트: schonstal/BLOODBALL
        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;
        }
예제 #5
0
        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);
            });
              });
        }
예제 #6
0
        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);
        }
예제 #7
0
파일: Ball.cs 프로젝트: schonstal/BLOODBALL
        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);
        }
예제 #8
0
파일: Card.cs 프로젝트: schonstal/BLOODBALL
        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;
        }
예제 #9
0
        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);
              }
        }
예제 #10
0
        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;
        }
예제 #11
0
        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>();
        }