Changeset 4802 for 2013/anlakane


Ignore:
Timestamp:
2013-11-22 23:33:54 (6 years ago)
Author:
vesal
Message:

Lisää tiernapoikia

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/anlakane/Tiernapojat/Tiernapojat/Tiernapojat/Tiernapojat.cs

    r4801 r4802  
    99public class Tiernapoika : PlatformCharacter 
    1010{ 
     11 
     12    private double korkeus; 
    1113    private KaantyvaOsa liikkuvaOsa; 
    1214 
     
    4042        Image = kuva; 
    4143        DirectionChanged += new Action<Direction>(Kaantyi); 
     44        this.korkeus = korkeus; 
     45        Mass = 40000.0; 
    4246    } 
    4347 
     
    5458 
    5559 
     60 
     61    internal void Nouse(double nopeus) 
     62    { 
     63        Height = korkeus; 
     64    } 
     65 
     66    internal void Polvistu(double nopeus) 
     67    { 
     68        Height = korkeus / 2; 
     69    } 
    5670} 
    5771 
     
    136150"                      ", 
    137151"                      ", 
    138 "   N                  ", 
     152"   N   N  N  N        ", 
    139153"=                     ", 
    140154                                             }; 
     
    145159    const int RUUDUN_KOKO = 40; 
    146160 
    147     Tiernapoika poika1; 
    148  
    149     Image pelaajanKuva = LoadImage("norsu"); 
    150     Image tahtiKuva = LoadImage("tahti"); 
    151  
    152     SoundEffect maaliAani = LoadSoundEffect("maali"); 
     161    private List<Tiernapoika> pojat = new List<Tiernapoika>(); 
     162 
     163    private Image pelaajanKuva = LoadImage("norsu"); 
     164    private Image tahtiKuva = LoadImage("tahti"); 
     165 
     166    private SoundEffect maaliAani = LoadSoundEffect("maali"); 
    153167 
    154168    public override void Begin() 
    155169    { 
     170        GamePad[] ohjaimet = { ControllerOne, ControllerTwo, ControllerThree, ControllerFour }; 
    156171        Gravity = new Vector(0, -1000); 
    157172 
    158173        LuoKentta(); 
    159         LisaaNappaimet(); 
     174 
     175        int ci = 0; 
     176        foreach (Tiernapoika poika in pojat) 
     177        { 
     178            LisaaNappaimet(ohjaimet[ci++], poika); 
     179            if (ci >= ohjaimet.Length) break; 
     180        } 
     181 
     182        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     183        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    160184 
    161185       // Camera.Follow(poika1); 
     
    206230    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    207231    { 
    208         poika1 = new Tiernapoika(leveys*4, korkeus*4,pelaajanKuva, LoadImage("kasi")); 
    209         poika1.Position = paikka; 
    210         poika1.Color = Color.Red; 
    211         poika1.Mass = 40000.0; 
    212  
    213         AddCollisionHandler(poika1, "tahti", TormaaTahteen); 
    214       //  Add(poika1.kiinnitysVartaloon); 
    215         Add(poika1); 
    216     } 
    217  
    218     void LisaaNappaimet() 
    219     { 
    220         Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    221         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    222  
    223         Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", poika1, -nopeus); 
    224         Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", poika1, nopeus); 
    225         Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", poika1, hyppyNopeus); 
    226  
    227         ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    228         ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", poika1, -nopeus); 
    229         ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", poika1, nopeus); 
    230         ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", poika1, hyppyNopeus); 
    231  
    232         ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.03, LiikutaKatta, "Liikuta kättä", poika1); 
     232        Tiernapoika poika = new Tiernapoika(leveys*4, korkeus*4,pelaajanKuva, LoadImage("kasi")); 
     233        poika.Position = paikka; 
     234        poika.Color = Color.Red; 
     235 
     236        AddCollisionHandler(poika, "tahti", TormaaTahteen); 
     237        // Add(poika1.KiinnitysVartaloon); 
     238        Add(poika); 
     239        pojat.Add(poika); 
     240    } 
     241 
     242    void LisaaNappaimet(GamePad controller, Tiernapoika poika) 
     243    { 
     244 
     245        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", poika, -nopeus); 
     246        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", poika, nopeus); 
     247        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", poika, hyppyNopeus); 
     248 
     249        controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     250        controller.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", poika, -nopeus); 
     251        controller.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", poika, nopeus); 
     252        controller.Listen(Button.DPadUp, ButtonState.Down, Nouse, "Pelaaja nousee", poika, -nopeus); 
     253        controller.Listen(Button.DPadDown, ButtonState.Down, Polvistu, "Pelaaja polvistuu", poika, nopeus); 
     254        controller.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", poika, hyppyNopeus); 
     255 
     256        controller.ListenAnalog(AnalogControl.RightStick, 0.03, LiikutaKatta, "Liikuta kättä", poika); 
    233257 
    234258        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     
    241265    } 
    242266 
    243     void Liikuta(PlatformCharacter hahmo, double nopeus) 
     267    void Liikuta(Tiernapoika hahmo, double nopeus) 
    244268    { 
    245269        hahmo.Walk(nopeus); 
    246270    } 
    247271 
    248     void Hyppaa(PlatformCharacter hahmo, double nopeus) 
     272    void Polvistu(Tiernapoika hahmo, double nopeus) 
     273    { 
     274        hahmo.Polvistu(nopeus); 
     275    } 
     276 
     277    void Nouse(Tiernapoika hahmo, double nopeus) 
     278    { 
     279        hahmo.Nouse(nopeus); 
     280    } 
     281 
     282    void Hyppaa(Tiernapoika hahmo, double nopeus) 
    249283    { 
    250284        hahmo.Jump(nopeus); 
Note: See TracChangeset for help on using the changeset viewer.