Changeset 169


Ignore:
Timestamp:
2009-07-24 11:39:29 (12 years ago)
Author:
hemitopp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • henri_t/Kill em' all/Peli.cs

    r139 r169  
    1010using Jypeli.ScreenObjects; 
    1111using Jypeli.Assets; 
     12using Physics2DDotNet.Ignorers; 
    1213 
    1314 
     
    2122        const double liikeVoima = 4000; 
    2223        const double hyppyVoima = 2500; 
    23         Timer vihollisajastin; 
    24       
     24        Timer vihollisajastin;     
    2525 
    2626        PlatformCharacter pelaaja1; 
    27  
    28  
    2927        int kenttaNro; // monesko kenttä on menossa 
     28        int vihollistenMaara = 5; 
     29       
     30 
    3031 
    3132        #endregion 
    32  
    3333 
    3434        #region Alustukset 
     
    3737            // Asetetaan kentän numero nollaksi, jota kasvatetaan kentän latauksessa (aina siis vähintään 1) 
    3838            kenttaNro = 0; 
    39  
    4039            DrawPerimeter = false; // ei haluta piirtää kentän reunoja 
    41  
    4240            vihollisajastin = new Timer(); 
    4341 
    4442            // Asetetaan painovoima 
    4543            Gravity = new Vector2D(0, -1000); 
    46  
    4744            // Zoomataan lähemmäksi 
    4845            Camera.ZoomFactor = 2.0; 
    49  
    50             aloitaUusiPeli(); 
     46            aloitaUusiPeli();           
    5147 
    5248        } 
     
    5551        { 
    5652            MessageDisplay.Clear(); 
    57  
    5853            kenttaNro = 0; 
    59  
    6054            // ladataan kenttä 
    6155            Level = seuraavaKentta(); 
     
    7064        #region KentanLataus 
    7165        Level seuraavaKentta() 
    72         { 
    73             
     66        {            
    7467            kenttaNro += 1; // lisätään kenttänumeroa yhdellä 
    7568            MessageDisplay.Add("Kenttä " + kenttaNro); 
     
    10598 
    10699 
    107             int vihollistenMaara = kenttaNro; 
     100            //int vihollistenMaara = kenttaNro; 
    108101            lisaaViholliset(kentta, vihollistenMaara); 
    109102 
     
    130123            
    131124            }; 
    132             pelaaja1.X = 0; 
    133             pelaaja1.Y = kentta.Bottom + 120; 
     125            pelaaja1.X = -4900; 
     126            pelaaja1.Y = kentta.Bottom + 300; 
    134127            AnimatedTexture kavelyTekstuuri = new AnimatedTexture(tekstuurit); 
    135128            kavelyTekstuuri.FPS = 0; 
     
    139132            pelaaja1.LeftIdleTexture = new AnimatedTexture(Textures.Mirror(Content.Load<Texture2D>("rambo2"))); 
    140133            pelaaja1.AnimationPerPixel = 0.0005; 
    141             
     134            pelaaja1.HitpointsReachedZero += new EventHandler(PelaajaKuolee); 
    142135            kentta.Objects.Add(pelaaja1); 
    143136            LuoAse(kentta, pelaaja1); 
     
    147140 
    148141 
    149  
    150  
    151  
    152  
    153142        void lisaaViholliset(Level kentta, int kpl) 
    154143        { 
     144            ObjectIgnorer ignorer = new ObjectIgnorer(); 
     145 
    155146            for (int i = 0; i < kpl; i++) 
    156147            { 
    157                 PlatformCharacter vihollinen = new PlatformCharacter(Shapes.CreateCircle(30), 100, 100); 
    158                 vihollinen.Brain = new nazibrain(); 
    159                 vihollinen.X = 9.3; 
    160                 vihollinen.Y = 8.3; 
     148                PlatformCharacter vihollinen = new PlatformCharacter(Shapes.CreateCircle(30), 100, 1); 
     149                nazibrain aivot = new nazibrain(); 
     150                vihollinen.Brain = aivot; 
     151                aivot.target = pelaaja1; 
     152                vihollinen.X = RandomGen.NextDouble(4900,0); 
     153                vihollinen.Y = 300; 
     154                vihollinen.Body.CollisionIgnorer = ignorer; 
     155                 
     156                Direction suunta = RandomGen.NextDirection(); 
     157 
     158              
    161159                Texture2D[] tekstuurit = 
    162160            { 
     
    176174            kentta.Objects.Add(vihollinen);   
    177175            LuoAse(kentta, vihollinen); 
    178           
    179  
    180                 
     176            vihollinen.HitpointsReachedZero += new EventHandler(poistaVihollinen);             
    181177                 
    182178            } 
     
    197193            Controls.Listen(Keys.Up, ButtonPosition.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima); 
    198194            Controls.Listen(Keys.Space, ButtonPosition.Down, Ammu, "Ammu", pelaaja1.Weapon); 
    199  
     195            Controls.Listen(Keys.Z, ButtonPosition.Pressed, hyppaa, "", pelaaja1, hyppyVoima); 
    200196            lisaaGamePadNappaimet(PlayerIndex.One, pelaaja1); 
    201197        } 
     
    249245            return true; 
    250246        } 
    251         #endregion 
    252  
    253  
    254  
    255              
    256          
    257  
    258         
    259              
     247        #endregion               
    260248         
    261249 
     
    265253            luoti.Size = new Vector2D(5, 1); 
    266254            luoti.UpdateShapeFromSize(); 
     255            luoti.Body.CollisionIgnorer = hahmo.Body.CollisionIgnorer; 
    267256            // Lisää ase pelaajalle 
    268257            hahmo.Weapon = new AssaultRifle(luoti); 
     
    273262            hahmo.EquipWeapon(); 
    274263        } 
    275  
    276  
    277  
     264        void LuoAse2 (Level kentta, PlatformCharacter hahmo) 
     265        {  // Luoteja aseeseen 
     266            Projectile luoti = new PlasmaParticle(); 
     267            luoti.Size = new Vector2D(5, 1); 
     268            luoti.UpdateShapeFromSize(); 
     269            luoti.Body.CollisionIgnorer = hahmo.Body.CollisionIgnorer; 
     270            // Lisää ase pelaajalle 
     271            hahmo.Weapon = new PlasmaCannon(luoti); 
     272            //pelaaja1.Weapon.Anchor = new Vector2D(0, 20); 
     273            hahmo.Weapon.Mass = 0.1; 
     274            kentta.Objects.Add(hahmo.Weapon); 
     275            hahmo.EquipWeapon(); 
     276        } 
     277                 
    278278        void PelaajaKuolee(object sender, EventArgs e) 
    279279        { 
     
    315315        } 
    316316 
    317  
     317        void VihollinenKuolee(object sender, EventArgs e) 
     318        { 
     319 
     320        } 
    318321    } 
    319322 
     
    325328    { 
    326329 
    327         int vauhti = 0; 
     330        int gameTime = 0; 
     331 
     332        public PhysicsObject target { get; set; } 
    328333 
    329334        /// <summary> 
     
    332337        public nazibrain() { } 
    333338 
    334         /// <summary> 
    335         /// Kutsutaan, kun tapahtuu törmäys. 
    336         /// </summary> 
    337         /// <param name="target">Olio, johon törmätään.</param> 
    338         public override void OnCollision(GameObject target) 
    339         { 
    340             int luku1 = RandomGen.NextIntRange(-10000, -5000, 5000, 10000); 
    341             int luku2 = RandomGen.NextIntRange(-10000, -5000, 5000, 10000); 
    342  
    343             //AttemptMove(new Vector2D(luku1, luku2)); 
    344              
    345             base.OnCollision(target); 
    346         } 
     339        ///// <summary> 
     340        ///// Kutsutaan, kun tapahtuu törmäys. 
     341        ///// </summary> 
     342        ///// <param name="target">Olio, johon törmätään.</param> 
     343        //public override void OnCollision(GameObject target) 
     344        //{ 
     345        //    int luku1 = RandomGen.NextIntRange(-10000, -5000, 5000, 10000); 
     346        //    int luku2 = RandomGen.NextIntRange(-10000, -5000, 5000, 10000); 
     347 
     348        //    //AttemptMove(new Vector2D(luku1, luku2)); 
     349 
     350        //    base.OnCollision(target); 
     351        //} 
    347352 
    348353        /// <summary> 
     
    353358        { 
    354359 
    355             if (gameTime.TotalGameTime.Seconds % 3 == 0) 
    356             { 
    357                 vauhti = RandomGen.NextIntRange(-100000, -10000, 10000, 100000); 
    358                 //luku2 = RandomGen.NextIntRange(-10000, -100, 100, 1000); 
    359  
    360                 //AttemptMove(new Vector2D(luku1, luku2)); 
     360            this.gameTime = gameTime.TotalGameTime.Seconds; 
     361            //if (gameTime.TotalGameTime.Seconds - lastChange > 3) 
     362            //{ 
     363            //    vauhti = RandomGen.NextIntRange(-100000, -10000, 10000, 100000); 
     364            //    //luku2 = RandomGen.NextIntRange(-10000, -100, 100, 1000); 
     365 
     366            //    //AttemptMove(new Vector2D(luku1, luku2)); 
     367 
     368            //    lastChange = gameTime.TotalGameTime.Seconds; 
     369 
     370            //    base.OnUpdate(gameTime); 
     371            //} 
     372 
     373            Vector2D movement = target.Position - this.Owner.Position; 
     374 
     375            Vector2D normalizedMovement = movement.Normalized; 
     376 
     377 
     378            PlatformCharacter vihollinen = (Owner as PlatformCharacter); 
     379            vihollinen.Walk(gameTime, new Vector2D(normalizedMovement.X * 40000, 0)); 
     380 
     381 
     382            double TargetCloseDistance = 200; 
     383 
     384            double distance = Vector2D.Distance(this.Owner.Position, target.Position); 
     385            bool targetClose = Math.Abs(distance) < TargetCloseDistance; 
     386 
     387            if (Math.Abs(distance) < TargetCloseDistance) 
     388            { 
     389                Weapon ase = vihollinen.Weapon; 
     390                Projectile ammus = ase.Use(); 
    361391                 
    362392 
    363  
    364                 base.OnUpdate(gameTime); 
    365             } 
    366  
    367             (Owner as PlatformCharacter).Walk(gameTime, new Vector2D(vauhti, 0)); 
    368  
    369         } 
     393                if (ammus != null) 
     394                { 
     395                    vihollinen.Game.Objects.Add(ammus); 
     396                } 
     397 
     398 
     399 
     400            } 
     401 
     402        } 
     403 
    370404    } 
    371  
    372  
    373405} 
     406 
Note: See TracChangeset for help on using the changeset viewer.