예제 #1
0
        protected override void OnUpdate()
        {
            // テスト用卵追加
            // カウンタが30の卵作成
            // https://baba-s.hatenablog.com/entry/2014/02/20/000000
            // 列挙型の乱数
            var random = new Random();
            // rndにleft, middle, rightのどれかがいます
            var rnd = Enum.GetValues(typeof(Pos))
                      .Cast <Pos>()
                      .OrderBy(c => random.Next())
                      .FirstOrDefault();

            // 上の処理はこれを楽に書きたいよねで書いたもの
            //var rnd = new Random(-1, 2);
            //if (rnd == 0)
            //{
            //    var egg = new Egg(Position + Width * rnd, Player, rnd);
            //    Parent.AddChildNode(egg);
            //}..
            // elseで続けてね

            if (GameCounter % 30 == 0)
            {
                var egg = new Egg(Position + Width * ((int)rnd - 1), Player, rnd);
                Parent.AddChildNode(egg);
            }
            GameCounter++;
        }
예제 #2
0
        protected override Task OnInitializedAsync()
        {
            Parent?.AddChildNode(this);


            return(base.OnInitializedAsync());
        }
예제 #3
0
        // 衝突時に実行
        protected override void OnCollision(CollidableObject obj)
        {
            // 衝突対象が自機弾だったら
            if (obj is Ball)
            {
                // スコアを加算
                mainNode.score += 1;

                // HPを1減らす
                hp--;
                // HPが0になったら自身を削除
                if (hp == 0)
                {
                    // 死亡時エフェクトを再生
                    Parent.AddChildNode(new DeathEffect(Position));

                    // 自身を削除
                    Parent.RemoveChildNode(this);

                    // 死亡音を読み込む
                    var deathSound = Sound.LoadStrict("Resources/Explosion.wav", true);

                    // 死亡音を再生
                    Engine.Sound.Play(deathSound);
                }
                else
                {
                    // HPが減ったのでテクスチャを変更
                    String path = "Resources/Block" + hp.ToString() + ".png";
                    Texture = Texture2D.LoadStrict(path);
                }
            }
        }
예제 #4
0
        public void Fire()
        {
            _bulletsMoveVelocity = (_playerInfo.Position - Position).Normal * 3.0f;
            EnemyBullet enemyBullet = new EnemyBullet(_mainNode, Position, _bulletsMoveVelocity);

            Parent.AddChildNode(enemyBullet);
        }
예제 #5
0
        public void FireFreezeBullet()
        {
            _bulletsMoveVelocity = (_playerInfo.Position - Position).Normal * 3.0f;
            FreezeBullet freezeBullet = new FreezeBullet(_mainNode, Position, _bulletsMoveVelocity);

            Parent.AddChildNode(freezeBullet);
        }