Пример #1
0
        public void ProcessGamePad(ScreenPad screenPad, PhysicalObject gameMap)
        {
            //var candidatePos = this.Position;
            //var candidateXPos = this.Position;
            //var candidateYPos = this.Position;

            //if (Math.Abs(screenPad.LeftStick.X) + Math.Abs(screenPad.LeftStick.Y) > 0)
            //{
            //    screenPad.LeftStick.Normalize();
            //    candidatePos = this.Position + new Vector2(screenPad.LeftStick.X, -screenPad.LeftStick.Y) * .5f;
            //    candidateXPos = this.Position + new Vector2(screenPad.LeftStick.X, 0) * .5f;
            //    candidateYPos = this.Position + new Vector2(0, -screenPad.LeftStick.Y) * .5f;
            //}

            //var collisionResult = gameMap.TestCollision(this, candidatePos);
            //var collisionXResult = gameMap.TestCollision(this, candidateXPos);
            //var collisionYResult = gameMap.TestCollision(this, candidateYPos);
            //if (collisionResult.CollisionType == CollisionType.None)
            //{
            //    this.Position = candidatePos;
            //}
            //else if (collisionXResult.CollisionType == CollisionType.None)
            //{
            //    this.Position = candidateXPos;
            //}
            //else if (collisionYResult.CollisionType == CollisionType.None)
            //{
            //    this.Position = candidateYPos;
            //}
        }
Пример #2
0
        public View(GraphicsDeviceManager graphics, ContentManager content, ScreenPad screenPad, BossMovement bossMovement, int levelNumber, string levelName, IJsonMapManager jsonMapManager)
        {
            viewStatesDic.Add(ViewState.Intro, new ViewStateIntro(graphics, content, screenPad, bossMovement, levelNumber, levelName, jsonMapManager));
            viewStatesDic.Add(ViewState.Menu, new ViewStateMenu(graphics, content, screenPad, bossMovement, levelNumber, levelName, jsonMapManager));
            viewStatesDic.Add(ViewState.ShowLevel, new ViewStateShowLevel(graphics, content, screenPad, bossMovement, levelNumber, levelName, jsonMapManager));
            viewStatesDic.Add(ViewState.Playing, new ViewStatePlaying(graphics, content, screenPad, bossMovement, levelNumber, levelName, jsonMapManager));
            viewStatesDic.Add(ViewState.TheEnd, new ViewStateTheEnd(graphics, content, screenPad, bossMovement, levelNumber, levelName, jsonMapManager));
            viewStatesDic.Add(ViewState.GameOver, new ViewStateGameOver(graphics, content, screenPad, bossMovement, levelNumber, levelName, jsonMapManager));

            currentViewState = viewStatesDic[ViewState.Menu];

            NewMessenger.Default.Register <ViewStateChangedMessage>(this, (message) =>
            {
                foreach (var viewState in viewStatesDic.Values)
                {
                    viewState.UnregisterActions();
                }

                currentViewState = viewStatesDic[message.ViewState];
                currentViewState.RegisterActions();

                if (message.ViewState == ViewState.Intro)
                {
                    currentViewState.InitializeLevel();
                }
            });
        }
Пример #3
0
        public void ProcessGamePad(ScreenPad screenPad, PhysicalObject gameMap, float scrollRows)
        {
            var candidatePos  = this.Position;
            var candidateXPos = this.Position;
            var candidateYPos = this.Position;

            if (Math.Abs(screenPad.LeftStick.X) + Math.Abs(screenPad.LeftStick.Y) > 0)
            {
                screenPad.LeftStick.Normalize();
                candidatePos  = this.Position + new Vector2(screenPad.LeftStick.X, -screenPad.LeftStick.Y) * .25f;
                candidateXPos = this.Position + new Vector2(screenPad.LeftStick.X, 0) * .25f;
                candidateYPos = this.Position + new Vector2(0, -screenPad.LeftStick.Y) * .25f;
            }

            var collisionResult  = gameMap.TestCollision(this, candidatePos, scrollRows);
            var collisionXResult = gameMap.TestCollision(this, candidateXPos, scrollRows);
            var collisionYResult = gameMap.TestCollision(this, candidateYPos, scrollRows);

            if (collisionResult.CollisionType == CollisionType.None)
            {
                this.Position = candidatePos;
            }
            else if (collisionXResult.CollisionType == CollisionType.None)
            {
                this.Position = candidateXPos;
            }
            else if (collisionYResult.CollisionType == CollisionType.None)
            {
                this.Position = candidateYPos;
            }
        }
Пример #4
0
 public PlayerBullet(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, float damage, Player player)
     : base(content, spriteBatch, deviceScreenSize, screenPad, damage)
 {
     Size           = new Vector2(2, 2);
     speed          = .4f;
     this.damage    = damage;
     this.player    = player;
     this.screenPad = screenPad;
     direction      = new Vector2(0, -1);
 }
Пример #5
0
 public PhysicalObject(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad)
 {
     SetNewContent(content);
     this.spriteBatch      = spriteBatch;
     this.deviceScreenSize = deviceScreenSize;
     this.screenPad        = screenPad;
     this.TopLeftCorner    = new Vector2((deviceScreenSize.X - gameScreenTilesSize.X * tileWidth) / 2, (deviceScreenSize.Y - gameScreenTilesSize.Y * tileWidth) / 2);
     font = font ?? ContentHelper.Instance.GetContent <SpriteFont>("Super-Contra-NES");
     LoadContent();
 }
        private void ConfigureScreenPad()
        {
            gameFrameTexture = ContentHelper.Instance.GetContent <Texture2D>("GameFrame");
            screenPad        = new ScreenPad
                               (
                this,
                Content
                               );

            Resolver.Instance.RegisterGame(Content, screenPad);
        }
Пример #7
0
 public ViewStateBase(GraphicsDeviceManager graphics, ContentManager content, ScreenPad screenPad, BossMovement bossMovement, int levelNumber, string levelName, IJsonMapManager jsonMapManager)
 {
     this.content        = content;
     this.graphics       = graphics;
     this.content        = content;
     this.screenPad      = BaseResolver.Instance.Resolve <IScreenPad>();
     this.levelNumber    = levelNumber;
     this.levelName      = levelName;
     this.topLeftCorner  = new Vector2((screenSize.X - gameScreenSize.X) / 2, (screenSize.Y - gameScreenSize.Y) / 2);
     this.jsonMapManager = jsonMapManager;
     camera2d            = BaseResolver.Instance.Resolve <ICamera2d>();
     DefineActions();
 }
Пример #8
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            gameFrameTexture = ContentHelper.Instance.GetContent <Texture2D>("GameFrame");
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            screenPad = new ScreenPad
                        (
                this,
                ContentHelper.Instance.GetContent <Texture2D>("ThumbBase"),
                ContentHelper.Instance.GetContent <Texture2D>("ThumbStick"),
                ContentHelper.Instance.GetContent <Texture2D>("ABXY_buttons")
                        );

            PassLevel();
        }
Пример #9
0
    ///////////////////////////////////////////////////////////////////////////////
    // functions
    ///////////////////////////////////////////////////////////////////////////////

    // ------------------------------------------------------------------ 
    // Desc: 
    // ------------------------------------------------------------------ 

    void Awake () {
        screenPad = GetComponent<ScreenPad>();

        this.initBoyTrans = boyFace.transform;
        this.initGirlTrans = girlFace.transform;

        //
        this.showHideInitPos = new Vector3[ShowHideControls.Length];
        for ( int i = 0; i < ShowHideControls.Length; ++i ) {
            showHideInitPos[i] = ShowHideControls[i].transform.localPosition;
            Vector3 offset = showHideInitPos[i].normalized * 400.0f;
            ShowHideControls[i].transform.localPosition = new Vector3( showHideInitPos[i].x + offset.x,
                                                                       showHideInitPos[i].y + offset.y,
                                                                       showHideInitPos[i].z );
        }
    }
Пример #10
0
        private void PassLevel()
        {
            levelIndex++;
            BossMovement[] bossMovements = new BossMovement[] {
                BossMovement.WalkHorizontal,
                BossMovement.FloatSenoidHorizontal,
                BossMovement.WalkHorizontal,
                BossMovement.FloatSenoidHorizontal,
                BossMovement.WalkHorizontal,
                BossMovement.WalkHorizontal,
                BossMovement.WalkHorizontal,
                BossMovement.WalkHorizontal
            };

            string[] levelNames = new string[] {
                "MEDUSA",
                "THANATOS",
                "HYDRA",
                "CYCLOPS",
                "AUTOMATON",
                "GIANT",
                "MINOTAUR",
                "ARGUS"
            };

            if (currentView != null)
            {
                currentView.UnregisterActions();
                currentView.UnloadContent();

                Content.RootDirectory = "Content";
                ContentHelper.Setup(Content);

                gameFrameTexture = ContentHelper.Instance.GetContent <Texture2D>("GameFrame");
                screenPad        = new ScreenPad
                                   (
                    this,
                    ContentHelper.Instance.GetContent <Texture2D>("ThumbBase"),
                    ContentHelper.Instance.GetContent <Texture2D>("ThumbStick"),
                    ContentHelper.Instance.GetContent <Texture2D>("ABXY_buttons")
                                   );
            }

            currentView = new View(graphics, spriteBatch, Content, screenPad, bossMovements[levelIndex], levelIndex + 1, levelNames[levelIndex]);
            currentView.RegisterActions();
        }
Пример #11
0
 public Enemy12(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, int groupId)
     : base(content, spriteBatch, deviceScreenSize, screenPad, position, groupId)
 {
     charCode    = 'l';
     Size        = new Vector2(2, 2);
     Speed       = 1f;
     Position    = position;
     Lives       = 1000;
     IsPassingBy = true;
     IsFlying    = true;
     Direction   = new Vector2(position.X < windowTilesSize.X / 2 ? -1 : 1, 0);
 }
Пример #12
0
 public Enemy13(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, int groupId)
     : base(content, spriteBatch, deviceScreenSize, screenPad, position, groupId)
 {
     charCode = 'm';
     Size     = new Vector2(2, 2);
     Speed    = 3f;
     Position = position;
 }
Пример #13
0
 public Enemy4(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, int groupId)
     : base(content, spriteBatch, deviceScreenSize, screenPad, position, groupId)
 {
     charCode     = 'd';
     Size         = new Vector2(2, 2);
     Speed        = 3f;
     Position     = position;
     rangeWidth   = .125f;
     ticksToYRate = 10;
 }
Пример #14
0
 public Enemy7(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, int groupId)
     : base(content, spriteBatch, deviceScreenSize, screenPad, position, groupId)
 {
     charCode    = 'g';
     Size        = new Vector2(2, 2);
     Speed       = 2f;
     Position    = position;
     IsPassingBy = false;
 }
Пример #15
0
 public Weapon(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, Player player)
     : base(content, spriteBatch, deviceScreenSize, screenPad)
 {
     Size          = new Vector2(2, 2);
     StartPosition =
         Position  = position;
     this.player   = player;
 }
Пример #16
0
 public Enemy(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, int groupId)
     : base(content, spriteBatch, deviceScreenSize, screenPad)
 {
     Size          = new Vector2(2, 2);
     StartPosition =
         Position  = position;
     this.groupId  = groupId;
 }
Пример #17
0
 public Player(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad)
     : base(content, spriteBatch, deviceScreenSize, screenPad)
 {
 }
Пример #18
0
        public Bonus(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, Char bonusCode)
            : base(content, spriteBatch, deviceScreenSize, screenPad)
        {
            Size           = new Vector2(2, 2);
            Position       = position;
            this.bonusCode = bonusCode;
            switch (bonusCode)
            {
            case 'A':
                interMediateState = BonusState.FiveHundredPoints;
                break;

            case 'B':
                interMediateState = BonusState.Freeze;
                break;

            case 'C':
                interMediateState = BonusState.ExtraLife;
                break;

            case 'D':
                interMediateState = BonusState.Barrier;
                break;

            case 'E':
                interMediateState = BonusState.KillAllInScreen;
                break;
            }
        }
Пример #19
0
 public Princess(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad)
     : base(content, spriteBatch, deviceScreenSize, screenPad)
 {
     Position = new Vector2(windowTilesSize.X / 2 - Size.X / 2, 3);
 }
Пример #20
0
 public PlayerBullet5(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, float damage, Player player, Vector2 direction, float rotation, bool shouldPlaySound)
     : base(content, spriteBatch, deviceScreenSize, screenPad, damage, player)
 {
     this.direction       = direction;
     this.rotation        = rotation;
     this.shouldPlaySound = shouldPlaySound;
 }
Пример #21
0
 public PlayerBullet6(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, float damage, Player player)
     : base(content, spriteBatch, deviceScreenSize, screenPad, damage, player)
 {
     speed = 20f;
 }
Пример #22
0
    ///////////////////////////////////////////////////////////////////////////////
    // functions
    ///////////////////////////////////////////////////////////////////////////////

    // ------------------------------------------------------------------ 
    // Desc: 
    // ------------------------------------------------------------------ 

    void Awake () {
        if( instance == null ) {
            instance = this;
            // check if we have main menu options, and apply the options.
            GameObject options = GameObject.Find("MainMenuOptions");
            if ( options ) {
                instance.multiPlayer = options.GetComponent<MainMenuOptions>().isMultiPlayer;
                Debug.Log("multi player = " + instance.multiPlayer );
                GameObject.Destroy(options);
            }

            //
            GameObject goBoy = GameObject.FindWithTag("player_boy");
            playerBoy = goBoy.GetComponent<PlayerBase>(); 
            GameObject goGirl = GameObject.FindWithTag("player_girl");
            playerGirl = goGirl.GetComponent<PlayerBase>();

            //
            if ( startPoints.Length != 0 ) {
                int i = (int)(Random.value * (startPoints.Length-1));
                PlacePlayerAtStartPoint(this.startPoints[i].transform);
            }
            else {
                Debug.LogError("Can't find start point");
            }


            // init hud
            if ( screenPad == null ) {
                GameObject hud = null;
                hud_m.SetActiveRecursively(false);
                hud_s.SetActiveRecursively(false);

                if ( Game.IsMultiPlayer() )
                    hud = hud_m;
                else
                    hud = hud_s;
                hud.SetActiveRecursively(true);

                if ( hud ) {
                    screenPad = hud.GetComponent<ScreenPad>();
                    screenPad.Init();
                }

#if UNITY_IPHONE
                if ( Application.isEditor == false ) {
                    DebugHelper.Assert( screenPad, "screenPad not found" );
                }
#endif
            }
        }
    }
Пример #23
0
        public Map(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, int levelNumber)
            : base(content, spriteBatch, deviceScreenSize, screenPad)
        {
            scrollRows       = scrollStartRow;
            this.levelNumber = levelNumber;
            LoadMapContent();

            using (var sr = new StreamReader(string.Format(@"Content\Map{0:d2}.txt", levelNumber)))
            {
                var line = string.Empty;
                var y    = 0;
                while ((line = sr.ReadLine()) != null)
                {
                    mapLines.Add(line);
                }
            }
            scrollStartRow = (int)(mapLines.Count() * 2 - windowTilesSize.Y);
        }
Пример #24
0
 public EnemyBullet3(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 position, int groupId)
     : base(content, spriteBatch, deviceScreenSize, screenPad, position, groupId)
 {
     Size     = new Vector2(2, 2);
     Speed    = 5f;
     Position = position;
     IsBullet = true;
 }
Пример #25
0
 public Bullet(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, float damage)
     : base(content, spriteBatch, deviceScreenSize, screenPad)
 {
     Size        = new Vector2(2, 2);
     this.damage = damage;
     soundEffectInstance.Volume = .6f;
 }
 public ViewStateTheEnd(GraphicsDeviceManager graphics, ContentManager content, ScreenPad screenPad, BossMovement bossMovement, int levelNumber, string levelName, IJsonMapManager jsonMapManager)
     : base(graphics, content, screenPad, bossMovement, levelNumber, levelName, jsonMapManager)
 {
 }
Пример #27
0
 public Boss(ContentManager content, SpriteBatch spriteBatch, Vector2 deviceScreenSize, ScreenPad screenPad, Vector2 windowTilesSize, int levelNumber, BossMovement bossMovement)
     : base(content, spriteBatch, deviceScreenSize, screenPad)
 {
     this.windowTilesSize = windowTilesSize;
     this.levelNumber     = levelNumber;
     this.bossMovement    = bossMovement;
     bossSpriteSheet      = bossSpriteSheet ?? GetTexture(string.Format("Boss{0}SpriteSheet", levelNumber));
     bossHitSpriteSheet   = bossHitSpriteSheet ?? GetTexture(string.Format("Boss{0}HitSpriteSheet", levelNumber));
 }