Changeset 294 for arho_m


Ignore:
Timestamp:
2009-08-05 13:44:40 (10 years ago)
Author:
armahlam
Message:
 
Location:
arho_m/Avaruuspeli2
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • arho_m/Avaruuspeli2/Content/Content.contentproj

    r274 r294  
    4040    </Compile> 
    4141  </ItemGroup> 
     42  <ItemGroup> 
     43    <Compile Include="laatikko.png"> 
     44      <Name>laatikko</Name> 
     45      <Importer>TextureImporter</Importer> 
     46      <Processor>TextureProcessor</Processor> 
     47    </Compile> 
     48  </ItemGroup> 
    4249  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    4350  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.  
  • arho_m/Avaruuspeli2/Peli.cs

    r274 r294  
    2525        PlasmaCannon ase; 
    2626        BarGauge hitpointNaytto; 
    27         double vihu_interv = 0.5; 
    28         bool nopeuta_vihuja = true; 
    2927        #endregion 
    3028 
     
    5755        { 
    5856            ClearPhysics(); 
     57            Gravity = new Vector2D(-300, 0); 
    5958 
    6059            Level = luoKentta(); 
     
    7170 
    7271            Texture2D bgtex = Content.Load<Texture2D>("bgtex"); 
     72            kentta.Background.Image = bgtex; 
    7373 
    7474            lisaaPelaajat(kentta); 
     
    8080        { 
    8181            Texture2D alus = Content.Load<Texture2D>("alus"); 
    82             IShape pelaaja_shape = Shapes.CreateFromTexture(alus, new Vector2D(50, 40), 8.0); 
     82            IShape pelaaja_shape = Shapes.CreateFromTexture(alus, new Vector2D(alus.Width, alus.Height), 8.0); 
    8383 
    8484            pelaaja1 = new BattleObject(pelaaja_shape, 15, 5); 
     
    8888            pelaaja1.HitpointsReachedZero += new EventHandler(rajahdys); 
    8989 
    90             // Estää tahattoman pyörimisen 
    9190            pelaaja1.MomentOfInertia = double.PositiveInfinity; 
     91            pelaaja1.IgnoresGravity = true; 
     92            pelaaja1.Restitution = 1.0; 
    9293 
    9394            AddCollisionHandler(pelaaja1, tormays); 
     
    102103            ase.FireRate = 8; 
    103104            ase.Power = new Meter<double>(5000, 5000, 5000); 
     105            ase.IgnoresGravity = true; 
    104106            kentta.Objects.Add(ase); 
    105  
     107        } 
     108 
     109        void asetaAjastimet() 
     110        { 
     111            // esteiden luominen 
    106112            Timer tm = new Timer(); 
    107             tm.Interval = vihu_interv; 
    108             tm.Trigger += new Timer.TriggerHandler(spawnVihu); 
     113            tm.Interval = 2.0; 
     114            tm.Trigger += new Timer.TriggerHandler(spawnEste); 
    109115            tm.Start(); 
    110116            AddTimer(tm); 
    111         } 
     117 
     118            // viholliset 
     119            Timer tm2 = new Timer(); 
     120            tm2.Interval = 0.8; 
     121            tm2.Trigger += new Timer.TriggerHandler(spawnVihu); 
     122            tm2.Start(); 
     123            AddTimer(tm2); 
     124        } 
     125 
    112126        #endregion 
    113127 
     
    122136 
    123137            // Pelaajan 1 näppäimet 
    124             const double nopeus = 850.0; 
     138            const double nopeus = 450.0; 
    125139            Controls.Listen(Keys.Left, ButtonPosition.Down, LiikuX, null, pelaaja1, -nopeus); 
    126140            Controls.Listen(Keys.Right, ButtonPosition.Down, LiikuX, null, pelaaja1, nopeus); 
     
    202216        } 
    203217 
    204         void spawnVihu(Timer t) 
    205         { 
    206             IShape shape; 
    207  
    208             int numero = RandomGen.NextInt(0, 1); 
    209             switch (numero) 
    210             { 
    211                 case 0: 
    212                     shape = Shapes.CreateRectangle(40, 40); 
    213                     break; 
    214  
    215                 case 1: 
    216                     shape = Shapes.CreateCircle(20.0); 
    217                     break; 
    218  
    219                 default: 
    220                     return; 
    221             } 
    222  
    223             BattleObject bo = new BattleObject(shape, 25.0, 25); 
    224  
    225             bo.X = Level.Right - (bo.Width/2.0); 
    226             bo.Y = RandomGen.NextDouble(Level.Bottom, Level.Top); 
    227             bo.HitpointsReachedZero += new EventHandler(rajahdys); 
    228             AddCollisionHandler(bo, VihuTormHandler); 
    229  
    230             Vector2D v = new Vector2D(RandomGen.NextDouble(-12000,-6000), RandomGen.NextDouble(-4000,4000)); 
    231             bo.Hit(v); 
    232  
    233             Level.Objects.Add(bo); 
    234  
    235             double kerroin = 1.4; 
    236  
    237             if (nopeuta_vihuja) 
    238                 vihu_interv /= kerroin; 
    239             else 
    240                 vihu_interv *= kerroin; 
    241  
    242             if (vihu_interv < 0.01 || vihu_interv > 0.5) 
    243                 nopeuta_vihuja = !nopeuta_vihuja; 
    244  
    245             t.Interval = vihu_interv; 
    246         } 
    247  
    248         void VihuTormHandler(Collision c) 
     218        void spawnEste(Timer timer) 
     219        { 
     220            Texture2D tex = Content.Load<Texture2D>("laatikko"); 
     221 
     222            IShape shape = Shapes.CreateFromTexture( 
     223                tex, 
     224                new Vector2D( 
     225                    RandomGen.NextDouble(20, 30), 
     226                    RandomGen.NextDouble(40, 120) 
     227                ), 
     228                10.0f 
     229            ); 
     230 
     231            BattleObject obj = new BattleObject(shape,200,100); 
     232            obj.Texture = tex; 
     233 
     234            obj.X = Level.Right - (obj.Width / 2); 
     235            obj.Y = RandomGen.NextDouble(Level.Bottom+(obj.Height/2.0), Level.Top-(obj.Height/2.0)); 
     236            obj.MomentOfInertia = double.PositiveInfinity; 
     237 
     238            AddCollisionHandler(obj, vasen_reuna_destroy); 
     239            Level.Objects.Add(obj); 
     240        } 
     241 
     242        void spawnVihu(Timer timer) 
     243        { 
     244        } 
     245 
     246        void vasen_reuna_destroy(Collision c) 
    249247        { 
    250248            if (c.Other == Level.LeftBorder) 
Note: See TracChangeset for help on using the changeset viewer.