Ignore:
Timestamp:
2016-11-19 14:55:24 (3 years ago)
Author:
tesatapa
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/ValtteriM/Ultimate platformer jumpping/Ultimate platformer jumpping/Ultimate_platformer_jumpping/Ultimate_platformer_jumpping.cs

    r8288 r8365  
    77using Jypeli.Widgets; 
    88 
     9class Pelaaja : PlatformCharacter 
     10{ 
     11    private IntMeter esine = new IntMeter(0); 
     12    public IntMeter Esine { get { return esine; } } 
     13 
     14    private IntMeter numero = new IntMeter(0); 
     15    public IntMeter Numero { get { return numero; } } 
     16 
     17    public Label esineKuva; 
     18 
     19    public Pelaaja(double leveys, double korkeus) 
     20        : base(leveys, korkeus) 
     21    { 
     22    } 
     23} 
     24 
    925public class Ultimate_platformer_jumpping : PhysicsGame 
    1026{ 
     
    1329    const int RUUDUN_KOKO = 40; 
    1430 
    15     PlatformCharacter pelaaja1; 
    16     PlatformCharacter pelaaja2; 
    17  
    18     Image pelaajanKuva = LoadImage("kana"); 
     31    bool lentotila = true; 
     32 
     33    Image Blockkuva = LoadImage("block2"); 
     34    Image heinäkuva = LoadImage("heinä"); 
     35    Image jousikuva = LoadImage("jousi"); 
     36    string[] esineNimet = new string[] { "block", "heina", "jousi" }; 
     37    Image[] esineKuvat = new Image[] { LoadImage("block2"), LoadImage("heinä"), LoadImage("jousi") }; 
     38    Action<Pelaaja>[] esineLuomiset; 
     39 
     40    Pelaaja pelaaja1; 
     41    Pelaaja pelaaja2; 
     42    Pelaaja pelaaja3; 
     43    Pelaaja pelaaja4; 
     44    Image pelaajanKuva = LoadImage("newkana"); 
    1945    Image pelaajan2Kuva = LoadImage("tiikeri"); 
    20  
     46    Image pelaajan3Kuva = LoadImage("liitoorava"); 
     47    Image pelaajan4Kuva = LoadImage("dog"); 
    2148    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2249 
    2350    public override void Begin() 
    2451    { 
    25         Gravity = new Vector(0, -1000); 
     52        esineLuomiset = new Action<Pelaaja>[] { LisaaBlock, LisaaHeina, LisaaJousi }; 
    2653 
    2754        LuoKentta(); 
    2855        LisaaNappaimet(); 
    2956 
    30         Camera.Follow(pelaaja1); 
    31         Camera.ZoomFactor = 1.2; 
    32         Camera.StayInLevel = true; 
     57    } 
     58 
     59     
     60 
     61    void AloitaPeli() 
     62    { 
     63 
    3364    } 
    3465 
     
    4071        kentta.SetTileMethod('C', LisaaPelaaja1); 
    4172        kentta.SetTileMethod('t', LisaaPelaaja2); 
     73        kentta.SetTileMethod('l', LisaaPelaaja3); 
     74        kentta.SetTileMethod('d', LisaaPelaaja4); 
     75         
    4276        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    43         Level.CreateBorders(); 
     77        Level.CreateBorders(false); 
    4478        Level.Background.CreateGradient(Color.White, Color.Aqua); 
     79 
     80        Camera.StayInLevel = true; 
     81 
     82        Camera.ZoomToLevel(); 
    4583    } 
    4684 
     
    62100    } 
    63101 
    64     PlatformCharacter LisaaPelaaja(Vector paikka, double leveys, double korkeus, Image kuva) 
    65     { 
    66         PlatformCharacter pelaaja = new PlatformCharacter(leveys*0.7, korkeus*0.7); 
     102    Pelaaja LisaaPelaaja(Vector paikka, double leveys, double korkeus, Image kuva, int numero) 
     103    { 
     104        Pelaaja pelaaja = new Pelaaja(leveys*0.7, korkeus*0.7); 
    67105        pelaaja.Position = paikka; 
    68106        pelaaja.Mass = 0.1; 
    69107        pelaaja.Image = kuva; 
     108        pelaaja.CollisionIgnoreGroup = 1; 
     109        pelaaja.Numero.Value = numero; 
     110        pelaaja.IgnoresCollisionResponse = true; 
    70111        Add(pelaaja); 
     112 
     113        pelaaja.esineKuva = new Label(); 
     114        pelaaja.esineKuva.Image = Blockkuva; 
     115        pelaaja.esineKuva.Y = korkeus; 
     116        pelaaja.Add(pelaaja.esineKuva); 
    71117 
    72118        AddCollisionHandler(pelaaja, "vaara", TormaaVaaraan); 
     
    76122    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus) 
    77123    { 
    78         pelaaja1 = LisaaPelaaja(paikka,leveys,korkeus,pelaajanKuva); 
     124        pelaaja1 = LisaaPelaaja(paikka,leveys*0.5,korkeus,pelaajanKuva, 1); 
    79125    } 
    80126 
    81127    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus) 
    82128    { 
    83         pelaaja2 = LisaaPelaaja(paikka, leveys, korkeus,pelaajan2Kuva); 
    84     } 
     129        pelaaja2 = LisaaPelaaja(paikka, leveys, korkeus,pelaajan2Kuva, 2); 
     130    } 
     131    void LisaaPelaaja3(Vector paikka, double leveys, double korkeus) 
     132    { 
     133        pelaaja3 = LisaaPelaaja(paikka, leveys, korkeus,pelaajan3Kuva, 3); 
     134    } 
     135    void LisaaPelaaja4(Vector paikka, double leveys, double korkeus) 
     136    { 
     137        pelaaja4 = LisaaPelaaja(paikka, leveys, korkeus, pelaajan4Kuva, 4); 
     138    } 
     139 
    85140 
    86141    void LisaaNappaimet() 
    87     { 
     142    {             
     143 
    88144        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    89145        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     146 
    90147 
    91148        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
    92149        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus); 
    93150        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    94         Keyboard.Listen(Key.Q, ButtonState.Pressed, asetaesine, "", pelaaja1); 
     151        Keyboard.Listen(Key.S, ButtonState.Pressed, Laskeudu, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     152        Keyboard.Listen(Key.Q, ButtonState.Pressed, AsetaEsine, "", pelaaja1); 
     153        Keyboard.Listen(Key.Z, ButtonState.Pressed, ValitseEsine, "", pelaaja1); 
    95154 
    96155        Keyboard.Listen(Key.NumPad4, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus); 
    97156        Keyboard.Listen(Key.NumPad6, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja2, nopeus); 
    98157        Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus); 
    99         Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, asetaesine, "", pelaaja2); 
     158        Keyboard.Listen(Key.NumPad5, ButtonState.Pressed, Laskeudu, "Pelaaja hyppää", pelaaja2, hyppyNopeus); 
     159        Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, AsetaEsine, "", pelaaja2); 
     160        Keyboard.Listen(Key.NumPad1, ButtonState.Pressed, ValitseEsine, "", pelaaja2); 
     161 
     162        Keyboard.Listen(Key.G, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja3, -nopeus); 
     163        Keyboard.Listen(Key.J, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja3, nopeus); 
     164        Keyboard.Listen(Key.Y, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja3, hyppyNopeus); 
     165        Keyboard.Listen(Key.H, ButtonState.Pressed, Laskeudu, "Pelaaja hyppää", pelaaja3, hyppyNopeus); 
     166        Keyboard.Listen(Key.T, ButtonState.Pressed, AsetaEsine, "", pelaaja3); 
     167        Keyboard.Listen(Key.B, ButtonState.Pressed, ValitseEsine, "", pelaaja3); 
     168 
     169        Keyboard.Listen(Key.L, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja4, -nopeus); 
     170        Keyboard.Listen(Key.Auml, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja4, nopeus); 
     171        Keyboard.Listen(Key.P, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja4, hyppyNopeus); 
     172        Keyboard.Listen(Key.Ouml, ButtonState.Pressed, Laskeudu, "Pelaaja hyppää", pelaaja4, hyppyNopeus); 
     173        Keyboard.Listen(Key.O, ButtonState.Pressed, AsetaEsine, "", pelaaja4); 
     174        Keyboard.Listen(Key.Period, ButtonState.Pressed, ValitseEsine, "", pelaaja4); 
     175 
     176 
    100177 
    101178        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    108185    } 
    109186 
    110     void asetaesine(PlatformCharacter hahmo) 
    111     { 
    112         LisaaTaso(hahmo.Position + new Vector(0,RUUDUN_KOKO), RUUDUN_KOKO, RUUDUN_KOKO); 
     187    void AsetaEsine(Pelaaja hahmo) 
     188    { 
     189        esineLuomiset[hahmo.Esine.Value](hahmo); 
     190    } 
     191 
     192    void LisaaBlock(Pelaaja hahmo) 
     193    { 
     194        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO); 
     195        taso.Position = hahmo.Position; 
     196        taso.Image = Blockkuva; 
     197        Add(taso); 
     198    } 
     199 
     200    void LisaaHeina(Pelaaja hahmo) 
     201    { 
     202        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO); 
     203        taso.Position = hahmo.Position; 
     204        taso.Image = heinäkuva; 
     205        Add(taso); 
     206    } 
     207 
     208    void LisaaJousi(Pelaaja hahmo) 
     209    { 
     210        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO); 
     211        taso.Position = hahmo.Position; 
     212        taso.Image = jousikuva; 
     213        Add(taso); 
     214    } 
     215 
     216    void ValitseEsine(Pelaaja hahmo) 
     217    { 
     218        hahmo.Esine.Value += 1; 
     219 
     220        if(hahmo.Esine.Value >= esineNimet.Length) 
     221        { 
     222            hahmo.Esine.Value = 0; 
     223        } 
     224 
     225        //MessageDisplay.Add("pelaaja "+hahmo.Numero.Value+" valitsi esineen " + esineNimet[hahmo.Esine.Value]); 
     226        hahmo.esineKuva.Image = esineKuvat[hahmo.Esine.Value]; 
     227        hahmo.esineKuva.Width = RUUDUN_KOKO; // esineKuvat[hahmo.Esine.Value].Width; 
     228        hahmo.esineKuva.Height = RUUDUN_KOKO; // esineKuvat[hahmo.Esine.Value].Height; 
     229 
    113230    } 
    114231 
     
    120237    void Hyppaa(PlatformCharacter hahmo, double nopeus) 
    121238    { 
    122         hahmo.Jump(nopeus); 
     239        if (lentotila) 
     240        { 
     241            hahmo.Push(Vector.UnitY * 200); 
     242        } 
     243        else 
     244        { 
     245            hahmo.Jump(nopeus); 
     246        } 
     247    } 
     248 
     249    void Laskeudu(PlatformCharacter hahmo, double nopeus) 
     250    { 
     251        if(lentotila) 
     252        { 
     253            hahmo.Push(Vector.UnitY * -200); 
     254        } 
    123255    } 
    124256 
Note: See TracChangeset for help on using the changeset viewer.