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++; }
protected override Task OnInitializedAsync() { Parent?.AddChildNode(this); return(base.OnInitializedAsync()); }
// 衝突時に実行 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); } } }
public void Fire() { _bulletsMoveVelocity = (_playerInfo.Position - Position).Normal * 3.0f; EnemyBullet enemyBullet = new EnemyBullet(_mainNode, Position, _bulletsMoveVelocity); Parent.AddChildNode(enemyBullet); }
public void FireFreezeBullet() { _bulletsMoveVelocity = (_playerInfo.Position - Position).Normal * 3.0f; FreezeBullet freezeBullet = new FreezeBullet(_mainNode, Position, _bulletsMoveVelocity); Parent.AddChildNode(freezeBullet); }