Changeset 940 for 2010/24


Ignore:
Timestamp:
2010-06-17 11:30:36 (10 years ago)
Author:
danmarti
Message:

Meleeviholliset toimii, kävelevät eteenpäin ja hyppivät. Säädettiin aseita toimivammiksi

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/danmarti/Vantaa 2001/Peli.cs

    r926 r940  
    1515 
    1616    const double Speed = 200; 
     17    const double meleeWalkingSpeed = -200; 
    1718    const double JumpStr = 2000; 
    1819    const int TileWidth = 50; 
     
    2425    { 
    2526        SetWindowSize(1024, 720, false); 
     27        ShowMenu(); 
     28    } 
     29 
     30    void ShowMenu() 
     31    { 
     32 
     33        MediaPlayer.Play("Split In Synapse"); 
     34        Image bg = LoadImage("menubg"); 
     35        Level.Background.Image = bg; 
     36        Level.Background.Size = new Vector(Screen.Width, Screen.Height); 
     37        Keyboard.Listen(Key.Enter, ButtonState.Pressed, StartGame, null); 
     38    } 
     39 
     40    void StartGame() 
     41    { 
     42        Image bg = Image.CreateGradient((int)Screen.Width, (int)Screen.Height, Color.LightBlue, Color.Blue); 
     43        // Image bg = LoadImage("kuvannimi"); 
     44        Level.Background.Image = bg;         
     45        Level.Background.Size = new Vector(Screen.Width, Screen.Height); 
     46        Level.Background.MovesWithCamera = false; 
    2647 
    2748        LifeP1 = new IntMeter(3); // Pelaajan 1 osumat 
     
    3758 
    3859        StartCoop(); 
    39     } 
    40  
    41     void ShowMenu() 
    42     { 
    43  
    44     } 
    45  
    46  
    47  
    48     void StartGame() 
    49     { 
    50         Gravity = new Vector(0, -1000); 
    51         CreateLevel(); 
    52         CreatePlayer(); 
    53         Camera.Follow(Player1); 
    54  
    55         Controls(); 
     60 
    5661    } 
    5762 
    5863    void StartCoop() 
    5964    { 
    60         MediaPlayer.Play("Split In Synapse"); 
    6165        Gravity = new Vector(0, -1000); 
    6266        CreateLevel(); 
     
    6468        Add(LifeMeterP2); 
    6569        Camera.Follow(Player1); 
    66  
    6770        Controls(); 
    6871    } 
     
    7982        Player.StaticFriction = 0; 
    8083        Player.LinearDamping = 1; 
     84        Player.Tag = "Player"; 
    8185 
    8286        LaserGun Weapon = new LaserGun(20, 5); 
    83         Weapon.X = 50; 
     87        Weapon.X = 0; 
    8488        Weapon.LaserCollision = LaserCollide; 
    8589 
    8690        //Weapon.AttackSound = null; 
    8791        Weapon.IsVisible = false; 
    88         Weapon.TimeBetweenUse = new TimeSpan(0, 0, 0, 0, 10); 
    89         Weapon.MaximumLifetime = new TimeSpan(1, 0, 0, 0, 0); 
     92        Weapon.TimeBetweenUse = new TimeSpan(0, 0, 0, 0, 250); 
    9093 
    9194        Player.Weapon = Weapon; 
     
    9497    } 
    9598 
    96     PhysicsObject CreateEnemy() 
    97     { 
    98         PhysicsObject Enemy = new PhysicsObject(40, 65); 
    99         Enemy.Mass = 3.0; 
    100         Enemy.Color = Color.Red; 
    101         Enemy.KineticFriction = 0.1; 
    102         Enemy.StaticFriction = 0.1; 
    103         AddCollisionHandler(Enemy, EnemyPlayerCollision); 
    104         Enemy.CanRotate = false; 
    105         Add(Enemy); 
    106         return Enemy; 
     99    PlatformCharacter CreateMelee() 
     100    { 
     101        Melee Melee = new Melee(40, 65, meleeWalkingSpeed); 
     102        Melee.isAlive = true; 
     103        Melee.Mass = 3.0; 
     104        Melee.Color = Color.Red; 
     105        Melee.KineticFriction = 0.1; 
     106        Melee.StaticFriction = 0.1; 
     107        Melee.Tag = "Melee"; 
     108        AddCollisionHandler(Melee, EnemyPlayerCollision); 
     109        Melee.CanRotate = false; 
     110        //Add(Melee); 
     111        Melee.Tag = "Melee"; 
     112        return Melee; 
    107113 
    108114    } 
     
    114120        Tiles['f'] = CreateFloor; 
    115121        Tiles['w'] = CreateWall; 
     122        Tiles['j'] = CreateJump; 
    116123        Tiles['r'] = CreateRespawn; 
    117         Tiles['e'] = CreateEnemy; 
     124        Tiles['m'] = CreateMelee; 
    118125        Tiles['1'] = StartP1; 
    119126        Tiles['2'] = StartP2; 
     
    128135        Keyboard.Listen(Key.D, ButtonState.Down, Walk, "Move right", Player1, Speed); 
    129136        Keyboard.Listen(Key.W, ButtonState.Down, Jump, "Jump", Player1, JumpStr); 
    130         Keyboard.Listen(Key.Space, ButtonState.Down, Player1.Weapon.Use, "Ammu"); 
     137        Keyboard.Listen(Key.LeftControl, ButtonState.Down, Ammu, "Ammu", Player1); 
    131138 
    132139 
     
    134141        Keyboard.Listen(Key.Right, ButtonState.Down, Walk, "Move right", Player2, Speed); 
    135142        Keyboard.Listen(Key.Up, ButtonState.Down, Jump, "Jump", Player2, JumpStr); 
     143        Keyboard.Listen(Key.Space, ButtonState.Down, Ammu, "Ammu", Player2); 
     144    } 
     145 
     146    void Ammu(PlatformCharacter player) 
     147    { 
     148        PhysicsObject ammus = player.Weapon.Shoot(); 
     149        if(ammus != null) 
     150            ammus.IgnoresCollisionResponse = true; 
    136151    } 
    137152 
     
    150165    PhysicsObject CreateFloor() 
    151166    { 
    152         PhysicsObject Floor = PhysicsObject.CreateStaticObject(50.0, 50.0); 
     167        PhysicsObject Floor = PhysicsObject.CreateStaticObject(TileWidth, TileHeight); 
    153168        return Floor; 
    154169    } 
     
    156171    PhysicsObject CreateWall() 
    157172    { 
    158         PhysicsObject Wall = PhysicsObject.CreateStaticObject(50.0, 50.0); 
     173        PhysicsObject Wall = PhysicsObject.CreateStaticObject(TileWidth, TileHeight); 
    159174        return Wall; 
     175    } 
     176 
     177    PhysicsObject CreateJump() 
     178    { 
     179        PhysicsObject Jump = PhysicsObject.CreateStaticObject(TileWidth, TileHeight); 
     180        Jump.IgnoresCollisionResponse = true; 
     181        Jump.IsVisible = false; 
     182        AddCollisionHandler(Jump, JumpCollide); 
     183        return Jump; 
    160184    } 
    161185 
     
    178202    } 
    179203 
    180     void EnemyPlayerCollision(PhysicsObject Enemy, PhysicsObject Target) 
     204    void EnemyPlayerCollision(PhysicsObject Melee, PhysicsObject Target) 
    181205    { 
    182206        if (Target == Player1) 
     
    192216    void LaserCollide(PhysicsObject WProjectile, PhysicsObject Target) 
    193217    { 
    194         if((Target!=Player1) || (Target!=Player2)) 
    195             WProjectile.Destroy(); 
    196         //EnemyDeath(Enemy); 
     218        // Jos lasersäde osuu viholliseen, niin vihollinen kuolee 
     219         
     220        //if ((Target != Player1) && (Target != Player2)) 
     221 
     222        if (Target.Tag.ToString() == "Melee") 
     223        { 
     224            WProjectile.Destroy(); // Tuhotaan ammus 
     225            Target.Destroy(); // Tuhotaan kohde 
     226        } 
     227 
     228        //if (Target.Tag.ToString() == "Player") 
     229        //{ 
     230        //    WProjectile.Destroy(); 
     231        //} 
    197232 
    198233    } 
     
    208243            Death(Player2); 
    209244        } 
    210 } 
     245    } 
     246 
     247    void JumpCollide(PhysicsObject Jump, PhysicsObject Target) 
     248    { 
     249        if (Target.Tag.ToString() == "Melee") 
     250        { 
     251            //Target.Push(new Vector(0,4000)); 
     252            Target.Hit(new Vector(0, 4000)); 
     253            //((PlatformCharacter)Target).Jump(JumpStr); 
     254        } 
     255    } 
    211256 
    212257 
    213258    void Death(PlatformCharacter Player) 
    214259    { 
    215             if (Player == Player1) 
    216             { 
    217                 LifeP1.Value--; 
    218                 if (Player2.IsDestroyed() == false) 
    219                 { 
    220                     Camera.Follow(Player2); 
    221                 } 
    222                 Player1.Destroy(); 
    223  
    224             } 
    225             else if (Player == Player2) 
    226             { 
    227                 LifeP2.Value--; 
    228                 Player2.Destroy(); 
    229                 Camera.Follow(Player1); 
    230             } 
     260        // Player.Weapon.Destroy(); // TODO: Aseen tuhoaminen ei toimi? 
     261        // TODO: Kun pelaaja törmää, nii ntätä kutsutaan joskus 2 kertaa!! 
    231262         
     263        if (Player == Player1) 
     264        { 
     265            if (Player2.IsDestroyed() == false) 
     266            { 
     267                Camera.Follow(Player2); 
     268            } 
     269            Player1.Destroy(); 
     270            LifeP1.Value--; 
     271            if (LifeP1.Value == 0) 
     272            { 
     273                MessageDisplay.Add("Player 1 Has Died"); 
     274            } 
     275 
     276        } 
     277        else if (Player == Player2) 
     278        { 
     279            Player2.Destroy(); 
     280            LifeP2.Value--; 
     281            if (LifeP2.Value == 0) 
     282            { 
     283                MessageDisplay.Add("Player 2 Has Died"); 
     284            } 
     285            Camera.Follow(Player1); 
     286        } 
     287 
    232288        if ((Player1.IsDestroyed()) && (Player2.IsDestroyed())) 
    233289        { 
     
    235291            Camera.Follow(Player1); 
    236292        } 
     293              
    237294 
    238295    } 
Note: See TracChangeset for help on using the changeset viewer.