Changeset 3885


Ignore:
Timestamp:
2012-11-17 16:07:03 (7 years ago)
Author:
sijoseha
Message:
 
Location:
2012/kerho/ljov/Enter_name/Enter_name
Files:
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • 2012/kerho/ljov/Enter_name/Enter_name/Enter_name/Enter_name.cs

    r3864 r3885  
    1111    const int RUUDUN_KOKO = 40; 
    1212 
    13     Hemmo hemmo; 
     13    [Save] int Taso; 
    1414 
    1515    public Image pelaajanKuva = LoadImage("norsu"); 
     
    1818    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    1919 
     20    Hemmo hemmo; 
     21 
    2022    public override void Begin() 
    2123    { 
     24        hemmo = new Hemmo(); 
     25 
     26        if (DataStorage.Exists("save.xml")) LoadGame("save.xml"); else Taso = 0; 
     27 
    2228        Gravity = new Vector(0, -1000); 
    2329 
    24         //Kenttä 
    25         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     30        Camera.Follow(hemmo); 
     31        Camera.ZoomFactor = 0.9; 
     32        Camera.StayInLevel = true; 
     33 
     34        //Kontrollit 
     35        Mouse.ListenMovement(0.1, hemmo.Tahtaa, ""); 
     36        Mouse.Listen(MouseButton.Left, ButtonState.Down, Toimi, ""); 
     37            Keyboard.Listen(Key.A, ButtonState.Down, Vasen, ""); 
     38        Keyboard.Listen(Key.D, ButtonState.Down, Oikea, ""); 
     39        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy, ""); 
     40            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Pause, ""); 
     41 
     42            Valikko(); 
     43    } 
     44 
     45    public void Valikko() 
     46    { 
     47        MultiSelectWindow alku = new MultiSelectWindow("..", "Pelaa", "Kentät", "Lopeta"); 
     48        alku.AddItemHandler(0, Aloita); 
     49 
     50        alku.AddItemHandler(2, Exit); 
     51        alku.DefaultCancel = -1; 
     52        Add(alku); 
     53    } 
     54 
     55    public void Aloita() 
     56    { 
     57        LataaKentta(Taso); 
     58    } 
     59 
     60    void LataaKentta(int taso) 
     61    { 
     62        TileMap kentta = TileMap.FromLevelAsset(taso.ToString()); 
    2663        kentta.SetTileMethod('0', LisaaTuhottava); 
    2764        kentta.SetTileMethod('#', LisaaTaso); 
     
    3168        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    3269        Level.BackgroundColor = Color.Ivory; 
     70    } 
    3371 
    34         //Kontrollit 
    35         Keyboard.Listen(Key.Space, ButtonState.Down, Toimi, "Ihan turhia tälläset"); 
    36             Keyboard.Listen(Key.Left, ButtonState.Down, Vasen, "Liikkuu vasemmalle"); 
    37         Keyboard.Listen(Key.Right, ButtonState.Down, Oikea, "Liikkuu vasemmalle"); 
    38         Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy, "Pelaaja hyppää"); 
    39             Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    40  
    41         Camera.Follow(hemmo); 
    42         Camera.ZoomFactor = 0.9; 
    43         Camera.StayInLevel = true; 
    44  
    45     } 
    4672    void LisaaTaso(Vector paikka, double leveys, double korkeus) 
    4773    { 
     
    7096    void LisaaLoota(Vector paikka, double leveys, double korkeus) 
    7197    { 
    72         Tarvikelaatikko loota = new Tarvikelaatikko((int)leveys, (int)korkeus,20,20); 
     98        Loota loota = new Loota((int)leveys, (int)korkeus,20,20); 
    7399        loota.IgnoresCollisionResponse = true; 
     100        loota.Tag = "laatikko"; 
    74101        loota.Position = paikka; 
    75102        loota.Image = tahtiKuva; 
    76         loota.Tag = "laatikko"; 
    77103        Add(loota, -1); 
    78104    } 
    79105    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    80106    { 
    81         hemmo = new Hemmo(); 
    82107        hemmo.Position = paikka; 
     108        if (hemmo.IsAddedToGame) 
     109        { 
     110        Remove(hemmo); 
     111        Remove(hemmo.Ase); 
     112        RemoveCollisionHandlers(hemmo, null, null, null); 
     113        } 
    83114        Add(hemmo); 
     115        Add(hemmo.Ase); 
    84116        AddCollisionHandler(hemmo, hemmo.kolari); 
     117 
    85118        ProgressBar hpbar = new ProgressBar(100, 20); 
    86119        hpbar.Position = new Vector(Screen.Left + 80, Screen.Top -30); 
    87120        hpbar.BindTo(hemmo.hp); 
    88121        Add(hpbar); 
     122 
     123        Label Ammocount = new Label(); 
     124        Ammocount.BindTo(hemmo.Ase.Ammo); 
     125        Add(Ammocount); 
     126         
    89127    } //!!?!??!?!??!!?!??!+1 
    90128 
     
    102140    void Oikea() { hemmo.Liiku(1); } 
    103141    void Hyppy() { hemmo.Hyppy(); } 
     142 
     143    void Pause() 
     144    { 
     145        MultiSelectWindow pause = new MultiSelectWindow("", "Jatka", "Alkuun"); 
     146        pause.AddItemHandler(1, Valikko); 
     147        Add(pause); 
     148    } 
     149 
     150    public void Kuolema() 
     151    { 
     152        MultiSelectWindow kuollut = new MultiSelectWindow("Kuolit!", "Uudelleen", "Alkuun"); 
     153        kuollut.AddItemHandler(0, Aloita); 
     154        kuollut.AddItemHandler(1, Valikko); 
     155        Add(kuollut); 
     156    } 
     157 
     158    protected override void Update(Microsoft.Xna.Framework.GameTime gameTime) 
     159    { 
     160        base.Update(gameTime); //MITÄS ***** 
     161        if (hemmo != null)hemmo.Ase.Position = hemmo.Position; 
     162    } 
    104163} 
  • 2012/kerho/ljov/Enter_name/Enter_name/Enter_name/Enter_name.csproj

    r3864 r3885  
    113113  </ItemGroup> 
    114114  <ItemGroup> 
    115     <Compile Include="Tarvikelaatikko.cs" /> 
     115    <Compile Include="Loota.cs" /> 
    116116    <Compile Include="Hemmo.cs" /> 
    117117    <Compile Include="Ohjelma.cs" /> 
  • 2012/kerho/ljov/Enter_name/Enter_name/Enter_name/Hemmo.cs

    r3864 r3885  
    1111    public IntMeter hp = new IntMeter(40); 
    1212 
     13    public AssaultRifle Ase; 
     14    bool kuollut = false; 
     15 
    1316    const int MaxAmmo = 40; 
    1417    //hp mittarilla on jo maksiarvo 
     
    2225        hp.MaxValue = 40; 
    2326 
    24         Weapon = new AssaultRifle(60, 30); 
    25         Weapon.Power.DefaultValue = 50; 
    26         Weapon.Ammo.Value = MaxAmmo; 
    27         Weapon.AmmoIgnoresExplosions = Weapon.AmmoIgnoresGravity = false; 
    28         Weapon.CanHitOwner = true; 
    29         Weapon.ProjectileCollision = Ase; 
    30         Weapon.FireRate = 0.99; 
    31         Weapon.X = 40; 
     27        this.CollisionIgnoreGroup = 1; 
     28 
     29        Ase = new AssaultRifle(60, 30); 
     30        Ase.Power.DefaultValue = 50; 
     31        Ase.Ammo.Value = MaxAmmo; 
     32        Ase.AmmoIgnoresExplosions = Ase.AmmoIgnoresGravity = false; 
     33        Ase.CanHitOwner = false; 
     34        Ase.ProjectileCollision = Osuma; 
     35        Ase.FireRate = 0.99; 
     36        Ase.Position = Position; 
    3237    } 
    3338    public void Liiku(int dir) 
     
    4348    //    PhysicsObject purkka = Weapon.Shoot(); 
    4449    //    if (purkka != null) {purkka.Destroy();} 
    45         Weapon.Shoot(); 
     50          PhysicsObject ammus = Ase.Shoot(); 
     51          if (ammus != null) 
     52          { 
     53              ammus.CollisionIgnoreGroup = 1; 
     54          } 
    4655    } 
    4756 
    48     void Ase(PhysicsObject ammus, PhysicsObject kohde) 
     57    public void Tahtaa(AnalogState hiiri) 
    4958    { 
    50         Explosion xplosion = new Explosion(250); 
    51         xplosion.Position = ammus.Position; 
    52         xplosion.Force = 100; 
    53         xplosion.ShockwaveReachesObject += Tuhoa; 
    54         xplosion.ShockwaveColor = new Color(0, 255, 0, 100); 
    55         Game.Add(xplosion); 
    56         ammus.Destroy(); 
     59        Ase.Angle = (Game.Mouse.PositionOnWorld - Ase.AbsolutePosition).Normalize().Angle*6; 
     60    } 
     61 
     62    void Osuma(PhysicsObject ammus, PhysicsObject kohde) 
     63    { 
     64        if (!(kohde is Loota)) 
     65        { 
     66            Explosion xplosion = new Explosion(250); 
     67            xplosion.Position = ammus.Position; 
     68            xplosion.Force = 100; 
     69            xplosion.ShockwaveReachesObject += Tuhoa; 
     70            xplosion.ShockwaveColor = new Color(0, 255, 0, 100); 
     71            Game.Add(xplosion); 
     72            ammus.Destroy(); 
     73        } 
    5774    } 
    5875    void Tuhoa(IPhysicsObject kohde, Vector shokki) 
     
    6178        { 
    6279            hp.Value -= 1; 
     80            if (hp <= 0)  
     81                if  
     82                (!kuollut) 
     83                { 
     84                (this.Game as Enter_name).Kuolema(); 
     85                kuollut = true; 
     86                } 
    6387        } 
    6488        else if (kohde.Tag.ToString() == "TuhoaMinut") 
     
    7195        if (kohde.Tag.ToString() == "Consequence for failure") 
    7296        { 
    73             Game.MessageDisplay.Add("Häähää, kuolit!"); 
     97            if (!kuollut) 
     98            (this.Game as Enter_name).Kuolema(); 
     99            kuollut = true; 
    74100        } 
    75101        else if (kohde.Tag.ToString() == "laatikko") 
    76102        { 
    77             if (kohde is Tarvikelaatikko) 
     103            if (kohde is Loota) 
    78104            { 
    79                 Tarvikelaatikko laatikko = (Tarvikelaatikko)kohde; 
    80                 Console.WriteLine(laatikko.Health); 
     105                Loota laatikko = (Loota)kohde; 
     106                while (laatikko.Health > 0 && hp.Value < hp.MaxValue) 
     107                { 
     108                    hp.Value++; 
     109                    laatikko.Health--; 
     110                } 
     111                while (laatikko.Ammo > 0 && Ase.Ammo < MaxAmmo) 
     112                { 
     113                    Ase.Ammo.Value++; 
     114                    laatikko.Ammo--; 
     115                } 
     116                if (laatikko.Health == 0 && laatikko.Ammo == 0) laatikko.Destroy(); 
     117                Game.MessageDisplay.Add("lOOTAAN OSUUTTU"); 
    81118            } 
    82119        } 
    83120    } 
    84121} 
    85  
  • 2012/kerho/ljov/Enter_name/Enter_name/Enter_nameContent/Enter_nameContent.contentproj

    r3850 r3885  
    6262  </ItemGroup> 
    6363  <ItemGroup> 
    64     <Compile Include="kentta1.txt"> 
    65       <Name>kentta1</Name> 
     64    <Compile Include="0.txt"> 
     65      <Name>0</Name> 
    6666      <Importer>TextFileImporter</Importer> 
    6767      <Processor>TextFileContentProcessor</Processor> 
Note: See TracChangeset for help on using the changeset viewer.