Ignore:
Timestamp:
2014-06-26 15:01:25 (5 years ago)
Author:
lajomart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/26/OttoW/Sticman The Last Stand/Sticman The Last Stand/Sticman The Last Stand/Sticman_The_Last_Stand.cs

    r5100 r5131  
    1111    public static Sticman_The_Last_Stand Peli; 
    1212    public Pelaaja[] Pelaajat = new Pelaaja[2]; 
     13    public Vihollinen[] Viholliset = new Vihollinen[10]; 
    1314    enum Pelimuoto { Yksinpeli, Moninpeli, Survival } 
    1415 
     
    1617 
    1718    public Image pelaajanKuva = LoadImage("pelaajan kuva"); 
     19    public Image vihunKuva = LoadImage("vihu velho"); 
    1820    public Image lyontiKuva = LoadImage("lyonti anim"); 
    1921    public Image potkuKuva = LoadImage("potku anim"); 
     
    2729        taustaKuva = LoadImage("valikon tausta"); 
    2830        Level.Background.Image = taustaKuva; 
     31        MediaPlayer.Play("part_of_-rainski-10200_hifi"); 
     32        //MediaPlayer.PlayFromFile("part_of_-rainski-10200_hifi.mp3"); 
     33        MediaPlayer.IsRepeating = true; 
    2934    } 
    3035 
     
    4348 
    4449            ruudut.Execute(); 
    45             LuoVihollinen(new Vector(Level.Right - 100, Level.Bottom + 100)); 
     50            int vihuNumero = 0; 
     51            LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Right, Level.Right + 500), RandomGen.NextDouble(Level.Bottom, Level.Top)), vihuNumero); 
     52             
    4653        } 
    4754 
    4855        if (muoto == Pelimuoto.Moninpeli) 
    4956        { 
    50              
     57 
    5158            ruudut = ColorTileMap.FromLevelAsset("LAYOUT"); 
    5259            ruudut.SetTileMethod(Color.Black, LuoSeina); 
     
    6673            ruudut.SetTileMethod(Color.Cyan, LuoPelaaja, 2, "coop"); 
    6774            ruudut.Execute(); 
     75 
     76            int i = 10; 
     77            int vihuNumero = 0; 
     78 
     79            while (i > 0) 
     80            { 
     81                int j = RandomGen.NextInt(1, 4); 
     82 
     83                if (j == 1) 
     84                { 
     85                    LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left - 500, Level.Left), RandomGen.NextDouble(Level.Bottom, Level.Top)), vihuNumero); 
     86                    vihuNumero++; 
     87                } 
     88                else 
     89                { 
     90                    if (j == 2) 
     91                    { 
     92                        LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left - 500, Level.Right + 500), RandomGen.NextDouble(Level.Top, Level.Top + 500)), vihuNumero); 
     93                        vihuNumero++; 
     94                    } 
     95                    else 
     96                    { 
     97                        LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Right, Level.Right + 500), RandomGen.NextDouble(Level.Bottom, Level.Top)), vihuNumero); 
     98                        vihuNumero++; 
     99                    } 
     100                } 
     101 
     102                i--; 
     103            } 
    68104            //LuoPelaaja(new Vector(Level.Left + 100, Level.Bottom + 100), 1); 
    69105            //LuoPelaaja(new Vector(Level.Right - 100, Level.Bottom + 100), 2); 
    70106        } 
    71   
     107 
    72108        LuoOhjaimet(muoto); 
    73109        Camera.ZoomFactor += 0.075; 
    74         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    75         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     110 
    76111    } 
    77112 
    78113    void LuoKentta() 
    79114    { 
    80         Gravity = new Vector(0.0, -800.0); 
    81        Level.Size = new Vector(Screen.Width, Screen.Height); 
    82         
    83       /*  PhysicsObject alaReuna = Level.CreateBottomBorder(); 
    84         alaReuna.Tag = "lattia"; 
    85        *  
    86  
    87  
    88         PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
    89         vasenReuna.IsVisible = false; 
    90         PhysicsObject oikeareuna = Level.CreateRightBorder(); 
    91         oikeareuna.IsVisible = false; 
    92         */ 
    93          
     115        Gravity = new Vector(0.0, -1500.0); 
     116        Level.Size = new Vector(Screen.Width, Screen.Height); 
     117        //Level.BackgroundColor = Color.Red; 
     118 
     119        /*  PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     120          alaReuna.Tag = "lattia"; 
     121         *  
     122 
     123 
     124          PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     125          vasenReuna.IsVisible = false; 
     126          PhysicsObject oikeareuna = Level.CreateRightBorder(); 
     127          oikeareuna.IsVisible = false; 
     128          */ 
     129 
    94130    } 
    95131    void LuoSeina(Vector paikka, double leveys, double korkeus) 
     
    97133        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    98134        seina.Position = paikka; 
     135        seina.CollisionIgnoreGroup = 1; 
    99136        seina.IsVisible = false; 
    100137        Add(seina); 
     
    104141        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    105142        taso.Position = paikka; 
     143        taso.CollisionIgnoreGroup = 1; 
    106144        taso.Tag = "lattia"; 
    107         taso.Color = Color.Gray; 
     145        taso.Color = Color.Black; 
    108146        Add(taso); 
    109147    } 
     
    111149    void LuoPelaaja(Vector paikka, double leveys, double korkeus, int numero, String tagi) 
    112150    { 
    113         Pelaaja p = new Pelaaja(500, 500, 100); 
    114         p.Position = new Vector(paikka.X, paikka.Y + 750); 
     151        Pelaaja p = new Pelaaja(150, 150, 100); 
     152        p.Position = new Vector(paikka.X, paikka.Y + 100); 
    115153        //p.CanRotate = false; 
    116154        p.Restitution = 0.1; 
     
    129167        AddCollisionHandler<PhysicsObject, PhysicsObject>(p, "lattia", delegate { p.IsOnGround = true; }); 
    130168        AddCollisionHandler<Pelaaja, Vihollinen>(p, delegate(Pelaaja pelaaja, Vihollinen v) { v.Elamat.Value -= 10; }); 
    131     } 
    132  
    133     void LuoVihollinen(Vector paikka) 
    134     { 
    135         Vihollinen vihu = new Vihollinen(50, 50, 100); 
    136         vihu.Position = paikka; 
     169 
     170        AddCollisionHandler(p, tormasi); 
     171 
     172        LuoElamaLaskuri(numero); 
     173    } 
     174    void tormasi(PhysicsObject pelaaja, PhysicsObject kohde) 
     175    { 
     176        if (kohde.Tag.ToString() == "taistelu") 
     177        { 
     178            MessageDisplay.Add("Pelaaja törmäsi!"); 
     179        } 
     180        if (kohde.Tag.ToString() == "vihollinen") 
     181        { 
     182            Pelaaja p = pelaaja as Pelaaja; 
     183            p.Elamat.Value -= 10; 
     184        } 
     185    } 
     186 
     187    void LuoVihollinen(Vector paikka, int vihuNumero) 
     188    { 
     189        Vihollinen vihu = new Vihollinen(150, 150, 10); 
     190        vihu.Position = new Vector(paikka.X + 200, paikka.Y); 
    137191        vihu.Tag = "vihollinen"; 
    138         vihu.IgnoresCollisionResponse = true; 
     192        vihu.Image = vihunKuva; 
     193        vihu.Shape = Shape.FromImage(vihunKuva); 
     194        vihu.CollisionIgnoreGroup = 1; 
    139195        Add(vihu); 
    140196    } 
     
    142198    void LuoOhjaimet(Pelimuoto muoto) 
    143199    { 
     200        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     201        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     202 
    144203        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja 1 hyppää", Pelaajat[0]); 
    145         Keyboard.Listen(Key.A, ButtonState.Down, Liiku, "Pelaaja 1 liikkuu vasen", Pelaajat[0], new Vector(-500.0, 0.0)); 
    146         Keyboard.Listen(Key.D, ButtonState.Down, Liiku, "Pelaaja 1 liikkuu oikea", Pelaajat[0], new Vector(500.0, 0.0)); 
     204        Keyboard.Listen(Key.A, ButtonState.Down, Liiku, "Pelaaja 1 liikkuu vasen", Pelaajat[0], new Vector(-750.0, 0.0)); 
     205        Keyboard.Listen(Key.D, ButtonState.Down, Liiku, "Pelaaja 1 liikkuu oikea", Pelaajat[0], new Vector(750.0, 0.0)); 
    147206        Keyboard.Listen(Key.F, ButtonState.Pressed, Pelaajat[0].Lyo, "Pelaaja 1 lyö"); 
    148207        Keyboard.Listen(Key.S, ButtonState.Pressed, Pelaajat[0].Potkaise, "Pelaaja 1 potkaise"); 
     
    150209        { 
    151210            Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja 2 hyppää", Pelaajat[1]); 
    152             Keyboard.Listen(Key.Left, ButtonState.Down, Liiku, "Pelaaja 2 liikkuu vasen", Pelaajat[1], new Vector(-500.0, 0.0)); 
    153             Keyboard.Listen(Key.Right, ButtonState.Down, Liiku, "Pelaaja 2 liikkuu oikea", Pelaajat[1], new Vector(500.0, 0.0)); 
     211            Keyboard.Listen(Key.Left, ButtonState.Down, Liiku, "Pelaaja 2 liikkuu vasen", Pelaajat[1], new Vector(-750.0, 0.0)); 
     212            Keyboard.Listen(Key.Right, ButtonState.Down, Liiku, "Pelaaja 2 liikkuu oikea", Pelaajat[1], new Vector(750.0, 0.0)); 
    154213            Keyboard.Listen(Key.J, ButtonState.Pressed, Pelaajat[1].Lyo, "Pelaaja 2 lyö"); 
    155214            Keyboard.Listen(Key.Down, ButtonState.Pressed, Pelaajat[1].Potkaise, "Pelaaja 2 potkaise"); 
    156215        } 
    157216    } 
     217    void LuoElamaLaskuri(int numero) 
     218    { 
     219            Pelaajat[numero -1].Elamat.LowerLimit += delegate { kuolema(numero); }; 
     220 
     221            ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     222            if (numero == 1) 
     223            { 
     224                elamaPalkki.X = Screen.Left + 150; 
     225                elamaPalkki.Y = Screen.Top - 20; 
     226            } 
     227            if (numero == 2) 
     228            { 
     229                elamaPalkki.X = Screen.Right - 150; 
     230                elamaPalkki.Y = Screen.Top - 20; 
     231            } 
     232            elamaPalkki.BindTo(Pelaajat[numero - 1].Elamat); 
     233            Add(elamaPalkki); 
     234    } 
     235 
     236    void kuolema(int numero) 
     237    { 
     238        Pelaajat[numero - 1].Destroy(); 
     239    } 
    158240 
    159241    void Hyppaa(Pelaaja pelaaja) 
    160242    { 
    161         if (pelaaja.IsOnGround)  
    162         { 
    163             pelaaja.Hit(new Vector(0.0, 1000.0)); 
     243        if (pelaaja.IsOnGround) 
     244        { 
     245            pelaaja.Hit(new Vector(0.0, 1500.0)); 
    164246            pelaaja.IsOnGround = false; 
    165247        } 
     
    178260        alkuValikko.SetButtonColor(Color.Black); 
    179261        alkuValikko.SetButtonTextColor(Color.Red); 
     262        alkuValikko.BorderColor = Color.Red; 
     263        alkuValikko.ActiveColor = Color.Black; 
     264        alkuValikko.SelectionColor = Color.Black; 
    180265        alkuValikko.AddItemHandler(0, delegate { AloitaPeli(Pelimuoto.Yksinpeli); }); 
    181266        alkuValikko.AddItemHandler(1, delegate { AloitaPeli(Pelimuoto.Moninpeli); }); 
Note: See TracChangeset for help on using the changeset viewer.