Ignore:
Timestamp:
2017-07-04 11:59:04 (4 years ago)
Author:
npo17_45
Message:

Kullankaivaja: kuvia, näppäimiä ja inventoryn alku.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2017/27/AnttiN/Kullankaivaja/Kullankaivaja/Kullankaivaja/Kullankaivaja.cs

    r8852 r8866  
    99public class Kullankaivaja : PhysicsGame 
    1010{ 
     11 
     12    //tämä on peli 
     13    //tai oikeastaan sen koodi 
     14 
    1115    const double nopeus = 200; 
    12     const double hyppyNopeus = 750; 
     16    const double hyppyNopeus = 650; 
    1317    const int RUUDUN_KOKO = 40; 
    1418 
     
    2832    Image vahankultaakuva = LoadImage("Vahankultaa"); 
    2933    Image paljonkultaakuva = LoadImage("Paljonkultaa"); 
     34    Image tyhjaruutukuva = LoadImage("Tyhjaruutu"); 
    3035 
    3136    public override void Begin() 
    3237    { 
    33         Gravity = new Vector(0, -500); 
    34  
     38        IsFullScreen = true; 
     39        Timer.SingleShot(0.1, LuoAlkuvalikko); 
     40    } 
     41 
     42    void LuoAlkuvalikko() 
     43    { 
     44 
     45        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 
     46"Aloita peli", "Lopeta"); 
     47        alkuValikko.AddItemHandler(0, AloitaPeli); 
     48        alkuValikko.AddItemHandler(1, Exit); 
     49        Add(alkuValikko); 
     50 
     51    } 
     52 
     53    void AloitaPeli() 
     54    { 
     55        ClearAll(); 
    3556        LuoKentta(); 
    36         LisaaNappaimet(); 
    37         LisaaMuut(); 
     57 
    3858 
    3959        Camera.Follow(pelaaja1); 
    4060        Camera.ZoomFactor = 1.2; 
    4161        Camera.StayInLevel = true; 
     62 
     63        Gravity = new Vector(0, -500); 
     64 
     65        Luopainikkeet(); 
     66        LisaaNappaimet(); 
     67        LisaaMuut(); 
     68 
    4269    } 
    4370 
     
    5683        pisteNaytto.BindTo(rahalaskuri); 
    5784        Add(pisteNaytto); 
     85 
     86        Inventory inventory = new Inventory(); 
     87        inventory.Bottom = Screen.Bottom +50; 
     88        inventory.X = 0; 
     89        Add(inventory); 
     90 
     91        inventory.AddItem(null, tyhjaruutukuva); 
     92        inventory.AddItem(null, tyhjaruutukuva); 
     93        inventory.AddItem(null, tyhjaruutukuva); 
     94 
     95        // kaytossa = inventory.Objects[tyokalunPaikanNumero]; 
     96 
    5897 
    5998    } 
     
    69108        Level.CreateBorders(); 
    70109        Level.Background.CreateGradient(Color.White, Color.SkyBlue); 
    71     } 
    72  
     110 
     111         
     112    } 
     113 
     114    void Luopainikkeet() 
     115    { 
     116 
     117        PushButton pause = new PushButton(LoadImage("Taukonappain")); 
     118        pause.X = Screen.Left+50; 
     119        pause.Y = Screen.Top-50; 
     120        pause.Clicked += Pausevalikko; 
     121        Add(pause); 
     122 
     123        PushButton asetukset = new PushButton(LoadImage("Asetusnappain")); 
     124        asetukset.Width *= 2; 
     125        asetukset.Height *= 2; 
     126 
     127        asetukset.Right = Screen.Right; 
     128        asetukset.Bottom = Screen.Bottom; 
     129         
     130        asetukset.Clicked += Asetusvalikko; 
     131        Add(asetukset); 
     132 
     133    } 
     134    void Pausevalikko() 
     135    { 
     136        Pause(); 
     137        MultiSelectWindow pauseValikko = new MultiSelectWindow("Tauko","Jatka", "Lopeta"); 
     138        pauseValikko.AddItemHandler(0, Pause); 
     139        pauseValikko.AddItemHandler(1, Exit); 
     140        Add(pauseValikko); 
     141 
     142    } 
     143 
     144    void Asetusvalikko() 
     145    { 
     146 
     147        Pause(); 
     148        MultiSelectWindow asetusValikko = new MultiSelectWindow("Asetukset", "Nollaa palikat", "Sulje"); 
     149        asetusValikko.AddItemHandler(0, Nollaa); 
     150        asetusValikko.AddItemHandler(1, Pause); 
     151        Add(asetusValikko); 
     152 
     153    } 
    73154    void LisaaTaso(Vector paikka, double leveys, double korkeus) 
    74155    { 
     
    169250 
    170251        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Klikkaa, null); 
     252        Mouse.ListenWheel(Vaihdaesine, "vaihda inventoryesineitä"); 
    171253 
    172254        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    173         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     255        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Pausevalikko, "Pause"); 
     256 
    174257        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
    175258        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
    176259        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    177         Keyboard.Listen(Key.P, ButtonState.Pressed, Nollaa, "nollaa palikat"); 
     260        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
     261        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
     262        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     263 
    178264 
    179265 
     
    218304    } 
    219305 
     306    void Vaihdaesine() 
     307    { 
     308 
     309 
     310 
     311    } 
     312 
    220313    void Nollaa() 
    221314    { 
    222315 
    223316        ClearAll(); 
    224         Begin(); 
     317        AloitaPeli(); 
     318        IsPaused = false; 
    225319 
    226320    } 
     
    242336    } 
    243337} 
     338 
     339 
     340 
     341 
     342 
     343/// Esinevalikko. 
     344class Inventory : Widget 
     345{ 
     346    /// Tapahtuma, kun esine on valittu. 
     347    public event Action<PhysicsObject> ItemSelected; 
     348 
     349    /// Luo uuden esinevalikon. 
     350    public Inventory() 
     351        : base(new HorizontalLayout()) 
     352    { 
     353    } 
     354 
     355 
     356    /// Lisää esineen. 
     357    /// <param name="item">Lisättävä esine.</param> 
     358    /// <param name="kuva">Esineen ikoni, joka näkyy valikossa.</param> 
     359    public void AddItem(PhysicsObject item, Image kuva) 
     360    { 
     361        PushButton icon = new PushButton(kuva); 
     362        Add(icon); 
     363        icon.Clicked += delegate () { SelectItem(item); }; 
     364    } 
     365 
     366    void SelectItem(PhysicsObject item) 
     367    { 
     368        if (ItemSelected != null) 
     369        { 
     370            ItemSelected(item); 
     371        } 
     372    } 
     373} 
Note: See TracChangeset for help on using the changeset viewer.