Changeset 5288 for 2014/27


Ignore:
Timestamp:
2014-07-02 14:30:23 (5 years ago)
Author:
mijoliim
Message:

jhuuhu

Location:
2014/27/MikkoL/LM2/LM2
Files:
18 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2014/27/MikkoL/LM2/LM2/LM2/LM2.cs

    r5248 r5288  
    5757{ 
    5858    player player = new player(5, 5); 
    59     PhysicsObject playership = new PhysicsObject(37, 48); 
    60     double player_speed = 400; 
     59    PhysicsObject playership = new PhysicsObject(47, 46); 
     60    double player_speed = 425; 
    6161    Vector stagespeed = new Vector(-500,0); 
     62    Vector cntr = new Vector(0, 0); 
    6263 
    6364    bool BlazeIt = false; 
     
    6566    //Player 
    6667    Image player_ship_01 = LoadImage("player_ship_01"); 
     68    Image player_ship_02 = LoadImage("player_ship_02"); 
    6769    //Bullets 
    6870    Image bullet_green_laser01 = LoadImage("bullet_green_laser01"); 
    69     Image bullet_player = LoadImage("bullet_player"); 
     71 
     72    Image bullet_player01 = LoadImage("bullet_player"); 
     73    Image bullet_player02 = LoadImage("bullet_player02"); 
     74    Image bullet_player03 = LoadImage("bullet_player03"); 
     75    Image bullet_player04 = LoadImage("bullet_player04"); 
     76    Image bullet_player05 = LoadImage("bullet_player05"); 
    7077    //Enemies 
    7178    Image enemy_ship_01 = LoadImage("enemy_ship_01"); 
    7279    Image enemy_ship_01_red = LoadImage("enemy_ship_01_red"); 
     80    Image enemy_ship_02 = LoadImage("enemy_ship_02"); 
     81    Image enemy_ship_02_inverted = LoadImage("enemy_ship_02_inverted"); 
     82    //Powerups 
     83    Image powerup_damage = LoadImage("powerup_damage"); 
     84    Image powerup_spread = LoadImage("powerup_spread"); 
     85 
     86    //SFX 
     87    SoundEffect hurtsfx = LoadSoundEffect("hurt"); 
     88    SoundEffect hitsfx = LoadSoundEffect("hit"); 
     89    SoundEffect shootsfx = LoadSoundEffect("shoot"); 
     90    SoundEffect powerupsfx = LoadSoundEffect("powerup"); 
     91    SoundEffect explosionsfx = LoadSoundEffect("explosion"); 
    7392 
    7493    //Weapon 
    75     double wpn_shootRate = 0.05; 
    76     int wpn_damageRatio = 1; 
     94    double wpn_shootRate = 0.1; 
     95    IntMeter wpn_damageRatio = new IntMeter(1, 1, 10); 
    7796    DoubleMeter wpn_spread = new DoubleMeter(1,1,10); 
    7897 
     98    //Collision ignore groups 
     99    //2: player bullets 
     100    //3: enemies 
     101    //4: powerups 
    79102 
    80103    Timer wpn_timer = new Timer(); 
     
    83106    public override void Begin() 
    84107    { 
     108        hurtsfx.Play(); 
     109        explosionsfx.Play(); 
     110        hitsfx.Play(); 
     111        shootsfx.Play(); 
     112        powerupsfx.Play(); 
     113 
    85114        SetWindowSize(1280, 800, false); 
     115        SmoothTextures = false; 
     116        Level.Size = new Vector(1280, 800); 
    86117 
    87118        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     
    134165        lvl.SetTileMethod('1', enemy_ship_1); 
    135166        lvl.SetTileMethod('R', enemy_ship_1_red); 
     167        lvl.SetTileMethod('B', enemy_ship_2_bottom); 
     168        lvl.SetTileMethod('T', enemy_ship_2_top); 
    136169        lvl.Execute(35, 35); 
    137  
     170        // 
    138171 
    139172 
     
    156189        border.KineticFriction = 0; 
    157190        border.StaticFriction = 0; 
    158         border.Color = Color.Lighter(Color.Black, 20); 
     191        border.Color = Color.Black; 
    159192        border.Tag = "border"; 
    160193        Add(border, 1); 
     
    165198        border2.KineticFriction = 0; 
    166199        border2.StaticFriction = 0; 
    167         border2.Color = Color.Lighter(Color.Black, 20); 
     200        border2.Color = Color.Black; 
    168201        border2.Tag = "border"; 
    169202        Add(border2, 0); 
     
    232265    void AddPlayer(Vector pos, double width, double height) 
    233266    { 
     267        cntr = pos; 
     268 
    234269        player.Shape = Shape.Circle; 
    235270        player.Color = Color.Red; 
     
    250285        if (BlazeIt) strobePlr.Start(); 
    251286 
    252         playership.Image = player_ship_01; 
     287        playership.Image = player_ship_02; 
    253288        playership.IgnoresCollisionResponse = true; 
    254289        playership.IgnoresPhysicsLogics = true; 
    255290        playership.Angle = Angle.FromDegrees(-90); 
    256291        playership.CanRotate = false; 
     292        playership.Tag = "playership"; 
    257293        //playership.Parent = player; 
    258294        playership.Position = player.Position; 
     
    296332        //cheat 
    297333        Keyboard.Listen(Key.U, ButtonState.Pressed, cheat_upgrade, null); 
     334        Keyboard.Listen(Key.I, ButtonState.Pressed, cheat_damage, null); 
    298335    } 
    299336    void move(AnalogState speed) 
    300337    { 
    301         player.Velocity = speed.StateVector * player_speed; 
    302     } 
     338        player.Velocity = speed.StateVector * player_speed / (ControllerOne.LeftTriggerState+1); 
     339    } 
     340 
    303341    void cheat_upgrade() 
    304342    { 
    305343        wpn_spread.Value++; 
     344    } 
     345    void cheat_damage() 
     346    { 
     347        wpn_damageRatio.Value++; 
    306348    } 
    307349 
     
    324366                    Weapon(); 
    325367                    wpn_timer.Interval = wpn_shootRate; 
     368                    shootsfx.Play(); 
    326369                } 
    327370            }; 
     
    453496        projectile.Position = pos; 
    454497        projectile.Tag = "player_bullet"; 
    455         if (!BlazeIt) projectile.Image = bullet_player; 
    456         projectile.damage = wpn_damageRatio; 
     498 
     499        if (wpn_damageRatio <= 2) projectile.Image = bullet_player01; 
     500        else if (wpn_damageRatio.Value <= 4) projectile.Image = bullet_player03; 
     501        else if (wpn_damageRatio.Value <= 6) projectile.Image = bullet_player04; 
     502        else if (wpn_damageRatio.Value <= 8) projectile.Image = bullet_player02; 
     503        else if (wpn_damageRatio.Value <= 10) projectile.Image = bullet_player05; 
     504        if (BlazeIt) projectile.Image = null; 
     505        projectile.damage = wpn_damageRatio.Value; 
    457506            projectile.IgnoresCollisionResponse = true; 
    458507 
     
    486535        enemyship.Position = pos; 
    487536        enemyship.IgnoresCollisionResponse = true; 
    488         enemyship.health.MaxValue = 8; 
     537        enemyship.CollisionIgnoreGroup = 3; 
     538        enemyship.health.MaxValue = 6; 
    489539        enemyship.Image = enemy_ship_01; 
    490540 
     
    496546    void enemy_ship_1_frontborder(enemy enemyship, frontborder border) 
    497547    { 
    498         enemyship.LifetimeLeft = TimeSpan.FromSeconds(4); 
     548        enemyship.LifetimeLeft = TimeSpan.FromSeconds(3); 
    499549    } 
    500550    void enemy_ship_1_red(Vector pos, double width, double height) 
     
    505555        enemyship.Position = pos; 
    506556        enemyship.IgnoresCollisionResponse = true; 
    507         enemyship.health.MaxValue = 8; 
     557        enemyship.health.MaxValue = 6; 
    508558        enemyship.Image = enemy_ship_01_red; 
     559        enemyship.CollisionIgnoreGroup = 3; 
    509560 
    510561        Add(enemyship); 
     
    520571            enemyship.Velocity = -stagespeed; 
    521572            enemyship.Position = new Vector(border.X-1400, enemyship.Position.Y); 
    522             enemyship.LifetimeLeft = TimeSpan.FromSeconds(4); 
     573            enemyship.LifetimeLeft = TimeSpan.FromSeconds(3); 
    523574 
    524575            enemyship.canShoot = true; 
    525576        }; 
    526577    } 
     578    void enemy_ship_2_bottom(Vector pos, double width, double height) 
     579    { 
     580        enemy enemyship = new enemy(30, 70); 
     581        enemyship.Shape = Shape.Circle; 
     582        enemyship.Color = Color.Black; 
     583        enemyship.Position = pos; 
     584        enemyship.IgnoresCollisionResponse = true; 
     585        enemyship.CollisionIgnoreGroup = 3; 
     586        enemyship.health.MaxValue = 6; 
     587        enemyship.Image = enemy_ship_02; 
     588        enemyship.Angle = Angle.FromDegrees(90); 
     589 
     590        Add(enemyship); 
     591        enemyship.Hit(stagespeed); 
     592        AddCollisionHandler<enemy, player>(enemyship, damagePlayerEnemyShip); 
     593        AddCollisionHandler<PhysicsObject, frontborder>(enemyship, enemy_ship_2_bottom_frontborder); 
     594    } 
     595    void enemy_ship_2_bottom_frontborder(PhysicsObject enemyship, frontborder br) 
     596    { 
     597        enemyship.LifetimeLeft = TimeSpan.FromSeconds(3); 
     598        enemyship.Angle = Angle.FromDegrees(0); 
     599        enemyship.Velocity = new Vector(0, -stagespeed.X/1.7); 
     600        enemyship.Position = new Vector(cntr.X + enemyship.Y, -405); 
     601    } 
     602    void enemy_ship_2_top(Vector pos, double width, double height) 
     603    { 
     604        enemy enemyship = new enemy(30, 70); 
     605        enemyship.Shape = Shape.Circle; 
     606        enemyship.Color = Color.Black; 
     607        enemyship.Position = pos; 
     608        enemyship.IgnoresCollisionResponse = true; 
     609        enemyship.CollisionIgnoreGroup = 3; 
     610        enemyship.health.MaxValue = 6; 
     611        enemyship.Image = enemy_ship_02_inverted; 
     612        enemyship.Angle = Angle.FromDegrees(90); 
     613 
     614        Add(enemyship); 
     615        enemyship.Hit(stagespeed); 
     616        AddCollisionHandler<enemy, player>(enemyship, damagePlayerEnemyShip); 
     617        AddCollisionHandler<PhysicsObject, frontborder>(enemyship, enemy_ship_2_top_frontborder); 
     618    } 
     619    void enemy_ship_2_top_frontborder(PhysicsObject enemysship, frontborder br) 
     620    { 
     621        enemysship.LifetimeLeft = TimeSpan.FromSeconds(3); 
     622        enemysship.Angle = Angle.FromDegrees(0); 
     623        enemysship.Velocity = new Vector(0, stagespeed.X / 1.75); 
     624 
     625        enemysship.Position = new Vector(cntr.X + enemysship.Y, 405); 
     626    } 
     627 
     628    //Power-ups 
     629    void powerup(Vector pos) 
     630    { 
     631        int a = RandomGen.NextInt(1, 10); 
     632        if (a == 1) 
     633        { 
     634            createPowerup(pos); 
     635        }; 
     636    } 
     637    void createPowerup(Vector pos) 
     638    { 
     639        int type = RandomGen.NextInt(1, 4); 
     640 
     641        PhysicsObject powerup = new PhysicsObject(13, 13); 
     642        powerup.Position = pos; 
     643        powerup.Tag = "powerup"; 
     644        powerup.IgnoresCollisionResponse = true; 
     645        powerup.CollisionIgnoreGroup = 4; 
     646        powerup.MaximumLifetime = TimeSpan.FromSeconds(5); 
     647 
     648        FollowerBrain powerup_follow = new FollowerBrain(player); 
     649        powerup_follow.DistanceFar = 300; 
     650        powerup_follow.Speed = 500; 
     651        powerup_follow.Active = true; 
     652 
     653        powerup.Brain = powerup_follow; 
     654 
     655        if (type <= 2) 
     656        { 
     657            powerup.Image = powerup_damage; 
     658            AddCollisionHandler(powerup, "playership", powerupdamage); 
     659        } 
     660        else if (type >= 3) 
     661        { 
     662            powerup.Image = powerup_spread; 
     663            AddCollisionHandler(powerup, "playership", powerupspread); 
     664        } 
     665 
     666        Add(powerup, -2); 
     667    } 
     668    void powerupdamage(PhysicsObject powerup, PhysicsObject p) 
     669    { 
     670        wpn_damageRatio.Value++; 
     671        powerup.Destroy(); 
     672        powerupsfx.Play(); 
     673    } 
     674    void powerupspread(PhysicsObject powerup, PhysicsObject p) 
     675    { 
     676        wpn_spread.Value++; 
     677        powerup.Destroy(); 
     678        powerupsfx.Play(); 
     679    } 
    527680 
    528681    //Misc 
     
    535688        p.health.Value = p.health.Value - 10; 
    536689        b.Destroy(); 
     690        hurtsfx.Play(); 
    537691    } 
    538692    void damagePlayerBullet(bullet b, player p) 
     
    540694        p.health.Value = p.health.Value - b.damage; 
    541695        b.Destroy(); 
     696        hurtsfx.Play(); 
    542697    } 
    543698    void damageEnemy(bullet b, enemy e) 
    544699    { 
    545700        e.health.Value = e.health.Value - b.damage; 
     701        if (e.health.Value <= 0) 
     702        { 
     703            powerup(e.Position); 
     704            explosionsfx.Play(); 
     705        }; 
     706        hitsfx.Play(); 
    546707        b.Destroy(); 
     708         
    547709    } 
    548710} 
  • 2014/27/MikkoL/LM2/LM2/LM2Content/LM2Content.contentproj

    r5248 r5288  
    101101    </Compile> 
    102102  </ItemGroup> 
     103  <ItemGroup> 
     104    <Compile Include="enemy_ship_02.png"> 
     105      <Name>enemy_ship_02</Name> 
     106      <Importer>TextureImporter</Importer> 
     107      <Processor>TextureProcessor</Processor> 
     108    </Compile> 
     109  </ItemGroup> 
     110  <ItemGroup> 
     111    <Compile Include="enemy_ship_02_inverted.png"> 
     112      <Name>enemy_ship_02_inverted</Name> 
     113      <Importer>TextureImporter</Importer> 
     114      <Processor>TextureProcessor</Processor> 
     115    </Compile> 
     116  </ItemGroup> 
     117  <ItemGroup> 
     118    <Compile Include="powerup_damage.png"> 
     119      <Name>powerup_damage</Name> 
     120      <Importer>TextureImporter</Importer> 
     121      <Processor>TextureProcessor</Processor> 
     122    </Compile> 
     123  </ItemGroup> 
     124  <ItemGroup> 
     125    <Compile Include="powerup_spread.png"> 
     126      <Name>powerup_spread</Name> 
     127      <Importer>TextureImporter</Importer> 
     128      <Processor>TextureProcessor</Processor> 
     129    </Compile> 
     130  </ItemGroup> 
     131  <ItemGroup> 
     132    <Compile Include="bullet_player02.png"> 
     133      <Name>bullet_player02</Name> 
     134      <Importer>TextureImporter</Importer> 
     135      <Processor>TextureProcessor</Processor> 
     136    </Compile> 
     137    <Compile Include="bullet_player03.png"> 
     138      <Name>bullet_player03</Name> 
     139      <Importer>TextureImporter</Importer> 
     140      <Processor>TextureProcessor</Processor> 
     141    </Compile> 
     142    <Compile Include="bullet_player04.png"> 
     143      <Name>bullet_player04</Name> 
     144      <Importer>TextureImporter</Importer> 
     145      <Processor>TextureProcessor</Processor> 
     146    </Compile> 
     147    <Compile Include="bullet_player05.png"> 
     148      <Name>bullet_player05</Name> 
     149      <Importer>TextureImporter</Importer> 
     150      <Processor>TextureProcessor</Processor> 
     151    </Compile> 
     152  </ItemGroup> 
     153  <ItemGroup> 
     154    <Compile Include="player_ship_02.png"> 
     155      <Name>player_ship_02</Name> 
     156      <Importer>TextureImporter</Importer> 
     157      <Processor>TextureProcessor</Processor> 
     158    </Compile> 
     159  </ItemGroup> 
     160  <ItemGroup> 
     161    <Compile Include="hurt.wav"> 
     162      <Name>hurt</Name> 
     163      <Importer>WavImporter</Importer> 
     164      <Processor>SoundEffectProcessor</Processor> 
     165    </Compile> 
     166  </ItemGroup> 
     167  <ItemGroup> 
     168    <Compile Include="hit.wav"> 
     169      <Name>hit</Name> 
     170      <Importer>WavImporter</Importer> 
     171      <Processor>SoundEffectProcessor</Processor> 
     172    </Compile> 
     173    <Compile Include="powerup.wav"> 
     174      <Name>powerup</Name> 
     175      <Importer>WavImporter</Importer> 
     176      <Processor>SoundEffectProcessor</Processor> 
     177    </Compile> 
     178    <Compile Include="shoot.wav"> 
     179      <Name>shoot</Name> 
     180      <Importer>WavImporter</Importer> 
     181      <Processor>SoundEffectProcessor</Processor> 
     182    </Compile> 
     183  </ItemGroup> 
     184  <ItemGroup> 
     185    <Compile Include="explosion.wav"> 
     186      <Name>explosion</Name> 
     187      <Importer>WavImporter</Importer> 
     188      <Processor>SoundEffectProcessor</Processor> 
     189    </Compile> 
     190  </ItemGroup> 
    103191  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    104192  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
  • 2014/27/MikkoL/LM2/LM2/LM2Content/level_test.txt

    r5248 r5288  
    1 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 
     1                                      % 
     2                                      % 
     3                                      % 
     4                                      % 
     5                                      % 
     6                               reuna  %T 
     7                                      % 
     8                                      % 
     9                                      % 
     10                                      % 
     11&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&% 
    212&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx% 
    313&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx% 
    414&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx% 
    5 &                                     %                                             1                                             1                                             1 
    6 &                                     %     R                                             R                                             R 
    7 &                                     %                                        1                                             1                                             1 
    8 &                                     %          R                                             R                                             R 
    9 &                                     %                                   1                                             1                                             1 
    10 &                                     %               R                                             R                                             R 
    11 &                                     %                              1                                             1                                             1 
    12 &                                     %                    R                                             R                                             R 
    13 &                  P                  %                         1                                             1                                             1 
    14 &                                     %                          R                                             R                                             R 
    15 &                                     %                    1                                             1                                             1 
    16 &                                     %                              R                                             R                                             R 
    17 &                                     %               1                                             1                                             1 
    18 &                                     %                                   R                                             R                                             R 
    19 &                                     %          1                                             1                                             1 
    20 &                                     %                                        R                                             R                                             R 
    21 &                                     %     1                                             1                                             1 
    22 &xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%   
    23 &xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%   
    24 &xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%   
    25 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 
     15&                                     % 
     16&                                     % 
     17&                                     % 
     18&                                     % 
     19&                                     % 
     20&                                     % 
     21&                                     % 
     22&                                     % 
     23&                  P                  % 
     24&                                     % 
     25&                                     % 
     26&                                     % 
     27&                                     % 
     28&                                     % 
     29&                                     % 
     30&                                     % 
     31&                                     % 
     32&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx% 
     33&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx% 
     34&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx% 
     35&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&% 
     36                                      % 
     37                                      % 
     38                                      %  
     39                                      %  
     40                                      %  
     41                               reuna  % T 
     42                                      % 
     43                                      % 
     44                                      % 
     45                                      % 
Note: See TracChangeset for help on using the changeset viewer.