Ignore:
Timestamp:
2009-09-14 19:52:49 (10 years ago)
Author:
tovakosk
Message:

uus torni3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • topias_k/Square Defence beta/Peli.cs

    r444 r453  
    3030        PhysicsObject torni; 
    3131        PhysicsObject torni2; 
     32        PhysicsObject torni3; 
    3233        PhysicsObject Osto2; 
    3334        PhysicsObject Alku; 
     
    102103            //torni2 = luotorni2(-300, 100); 
    103104            //torni = luotorni(300, 100); 
     105            torni3 = luotorni3(-300, 100); 
    104106 
    105107            elamalaskuri = new Meter<int>(10, -1, 100); 
     
    154156            Add(lvlNaytto); 
    155157 
     158 
     159 
    156160            LuoTähtäin(); 
    157161            asetaohjaimet(); 
     
    168172            AddTimer(ampumisAjastin2); 
    169173            ampumisAjastin2.Start(); 
     174 
     175            Timer ampumisAjastin3 = new Timer(); 
     176            ampumisAjastin3.Interval = 0.1; 
     177            ampumisAjastin3.Trigger += new Timer.TriggerHandler(tarkistaampuminen3); 
     178            AddTimer(ampumisAjastin3); 
     179            ampumisAjastin3.Start(); 
    170180 
    171181            lista = HighScoreList.LoadOrCreate(this, "topten.dat", 10); 
     
    366376            return torni; 
    367377        } 
    368  
    369378        void tarkistaampuminen(Timer sender) 
    370379        { 
     
    458467            } 
    459468        } 
     469        PhysicsObject luotorni3(double X, double Y) 
     470        { 
     471            IShape t = Shapes.CreateRectangle(60, 60); 
     472            PhysicsObject torni3 = new PhysicsObject(10, t); 
     473            torni3.IgnoresCollisionResponse = true; 
     474            torni3.Visible = true; 
     475            torni3.IgnoresCollisionResponse = true; 
     476            torni3.IgnoresExplosions = true; 
     477            Texture2D basekuva = Content.Load<Texture2D>("Neliö3_base"); 
     478            torni3.Texture = basekuva; 
     479            torni3.X = X; 
     480            torni3.Y = Y; 
     481            Level.Objects.Add(torni3); 
     482 
     483            IShape u = Shapes.CreateRectangle(60, 60); 
     484            PhysicsObject tykki3 = new PhysicsObject(10, u); 
     485            tykki3.Visible = true; 
     486            tykki3.Color = Color.Blue; 
     487            tykki3.IgnoresCollisionResponse = true; 
     488            tykki3.IgnoresExplosions = true; 
     489            Level.Objects.Add(tykki3); 
     490            Texture2D tykkikuva = Content.Load<Texture2D>("Neliö3_tykki"); 
     491            tykki3.Texture = tykkikuva; 
     492            tykki3.X = X; 
     493            tykki3.Y = Y; 
     494 
     495            ProjectileWeapon ase3 = new ProjectileWeapon(); 
     496            Level.Objects.Add(ase3); 
     497            ase3.IgnoresCollisionResponse = true; 
     498            ase3.Power = new Meter<double>(2000, 0, 2000); 
     499            ase3.FireRate = 0.5; 
     500            ase3.Position = tykki3.Position; 
     501            ase3.SetOwner(tykki3, Level); 
     502            ase3.IgnoresExplosions = true; 
     503            ase3.InfiniteAmmo = true; 
     504            ase3.IgnoresCollisionResponse = true; 
     505            CannonBall ammus3 = new CannonBall(); 
     506            ammus3.Mass = 0.9; 
     507            ammus3.ExplodeCondition = Projectile.IsBattleObject; 
     508            ase3.AmmoType = ammus3; 
     509            ammus3.IgnoresExplosions = true; 
     510            ammus3.FuseTime = new Lifetime(0.15); 
     511 
     512            aseet.Add(ase3); 
     513 
     514            return torni; 
     515        } 
     516        void tarkistaampuminen3(Timer sender) 
     517        { 
     518            foreach (var ase3 in aseet) 
     519            { 
     520                foreach (var vihu in viholliset) 
     521                { 
     522                    if ((ase3.Position - vihu.Position).Magnitude < 250) 
     523                    { 
     524                        Angle kulma = Angle.Radians((vihu.Position - ase3.Position).Angle); 
     525                        //if( kulma.Radian - ase.Angle.Radian > 2 ) // TODO: mieti saisiko kääntymisen paremmaksi 
     526                        ase3.Angle = kulma; 
     527                        ase3.Owner.Angle = kulma; 
     528                        Projectile ammus3 = ase3.Use(); 
     529                        if (ammus3 == null) break; 
     530                        Level.Objects.Add(ammus3); 
     531                        break; 
     532                    } 
     533                } 
     534            } 
     535        } 
    460536        void VihuKuoli(object sender, EventArgs e) 
    461537        { 
     
    465541            Level.Objects.Remove(vihu); 
    466542            viholliset.Remove(vihu); 
    467             rahalaskuri.Value += 15; 
     543            rahalaskuri.Value += 150; 
    468544            vihujakentassa--; 
    469545        } 
    470  
    471546        bool Vasenhiiri(ControlEvent e) 
    472547        {          
    473548            Vector2D klikattuPaikka = Controls.Mouse.GetPositionOnScreen(); 
    474  
    475549            //MessageDisplay.Add( (klikattuPaikka.ToString())); 
    476  
    477550            if (OstoX - 20 < klikattuPaikka.X && 
    478551                OstoX + 20 > klikattuPaikka.X && 
     
    582655            return false; 
    583656        } 
    584          bool Oikeahiiri (ControlEvent e) 
     657        bool Oikeahiiri (ControlEvent e) 
    585658        { 
    586659            Vector2D klikattuPaikka = Controls.Mouse.GetPositionOnScreen(); 
     
    640713 
    641714        } 
     715 
    642716    } 
    643717} 
Note: See TracChangeset for help on using the changeset viewer.