Ignore:
Timestamp:
2011-06-15 13:55:25 (8 years ago)
Author:
ekeimaja
Message:

Jotain bugia on keskusteluikkunan kanssa.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/24/EkiM/nimeton/nimeton/nimeton/Peli.cs

    r1988 r2019  
    66using Jypeli.Widgets; 
    77 
    8 class Peli : PhysicsGame 
     8namespace PerusPeli 
    99{ 
    10       Image seinaoikeanKuva = LoadImage("seinaoikea"); 
    11       Image seinavasemmanKuva = LoadImage("seinavasen"); 
    12       Image lattianKuva = LoadImage("lattia"); 
    13       Image koydenKuva = LoadImage("koysi"); 
    14       Image nostinKuva = LoadImage("nostin"); 
    15       Image tikkaatKuva = LoadImage("tikkaat"); 
    16       Image lattiatikkaatKuva = LoadImage("lattiatikkaat"); 
    17       Image pelaajaKuva = LoadImage("ukko"); 
    18       Image vihunKuva = LoadImage("vihu1"); 
    19  
    20       PlatformCharacter pelaaja; 
    21       PhysicsObject vihu1; 
    22       MessageWindow kysymysIkkuna; 
    23  
    24  
    25     public override void Begin() 
     10    class Peli : PhysicsGame 
    2611    { 
    27         Gravity = new Vector(0.0, -500.0); 
    28         LataaKentta("map.txt"); 
    29         Camera.ZoomToLevel(); 
    30  
    31         LuoOhjain(); 
    32     } 
    33          
    34     void LataaKentta(string map)  
    35         { 
    36  
    37          TileMap merkit = TileMap.FromFile(map); 
    38  
    39          merkit.SetTileMethod('P', LuoPelaaja); 
    40          merkit.SetTileMethod('V', LuoVihu); 
    41          merkit.SetTileMethod('|', LuoSeinaoikea); 
    42          merkit.SetTileMethod('i', LuoSeinavasen); 
    43          merkit.SetTileMethod('_', LuoLattia); 
    44          merkit.SetTileMethod('L', LuoNostin); 
    45          merkit.SetTileMethod('H', LuoTikkaat); 
    46          merkit.SetTileMethod('h', LuoLattiatikkaat); 
    47           
    48          merkit.Execute(70, 70); 
    49  
    50         } 
    51     void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
     12        Image seinaoikeanKuva = LoadImage("seinaoikea"); 
     13        Image seinavasemmanKuva = LoadImage("seinavasen"); 
     14        Image lattianKuva = LoadImage("lattia"); 
     15        Image koydenKuva = LoadImage("koysi"); 
     16        Image nostinKuva = LoadImage("nostin"); 
     17        Image tikkaatKuva = LoadImage("tikkaat"); 
     18        Image lattiatikkaatKuva = LoadImage("lattiatikkaat"); 
     19        Image pelaajaKuva = LoadImage("ukko"); 
     20        Image vihunKuva = LoadImage("vihu1"); 
     21 
     22        PlatformCharacter pelaaja; 
     23        PhysicsObject vihu1; 
     24        MessageWindow kysymysIkkuna; 
     25 
     26 
     27        public override void Begin() 
     28        { 
     29            Gravity = new Vector(0.0, -500.0); 
     30            LataaKentta("map.txt"); 
     31            Camera.ZoomToLevel(); 
     32 
     33            LuoOhjain(); 
     34        } 
     35 
     36        void LataaKentta(string map) 
     37        { 
     38 
     39            TileMap merkit = TileMap.FromFile(map); 
     40 
     41            merkit.SetTileMethod('P', LuoPelaaja); 
     42            merkit.SetTileMethod('V', LuoVihu); 
     43            merkit.SetTileMethod('|', LuoSeinaoikea); 
     44            merkit.SetTileMethod('i', LuoSeinavasen); 
     45            merkit.SetTileMethod('_', LuoLattia); 
     46            merkit.SetTileMethod('L', LuoNostin); 
     47            merkit.SetTileMethod('H', LuoTikkaat); 
     48            merkit.SetTileMethod('h', LuoLattiatikkaat); 
     49 
     50            merkit.Execute(70, 70); 
     51 
     52        } 
     53        void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
    5254        { 
    5355            pelaaja = new PlatformCharacter(40, 62); 
     
    6062 
    6163        } 
    62     void LuoVihu(Vector paikka, double leveys, double korkeus) 
    63     { 
    64         vihu1 = new PhysicsObject(40, 62); 
    65         vihu1.CanRotate = false; 
    66         vihu1.Mass = 40.0; 
    67         vihu1.Position = paikka; 
    68         vihu1.Image = vihunKuva; 
    69         Add(vihu1); 
    70  
    71     } 
    72     void VihuunTormays(PhysicsObject pelaaja, PhysicsObject kohde) 
    73     { 
    74         IsMouseVisible = true; 
    75         if (kohde == vihu1) 
    76         { 
    77             InputWindow kysymysIkkuna = new InputWindow("Kysymys", "Nimesi?"); 
    78             kysymysIkkuna.TextEntered += vastaus; 
    79             Add(kysymysIkkuna); 
    80         } 
    81     } 
    82  
    83     void vastaus(InputWindow Ikkuna) 
    84     { 
    85         string vastaus = Ikkuna.InputBox.Text; 
    86         kysymysIkkuna = new MessageWindow("Kysymys", "Hmm...en muista ketään tuon nimistä täällä..."); 
    87         kysymysIkkuna.Closed += new Jypeli.Widgets.Window.WindowHandler(kysymysIkkuna_Closed); 
    88  
    89         Add(kysymysIkkuna); 
    90     } 
    91  
    92     void kysymysIkkuna_Closed(Window sender) 
    93     { 
    94         kysymysIkkuna = new MessageWindow("Kysymys", "Oletko uusi talossa?"); 
    95         kysymysIkkuna.OKButton.Text="Kyllä olen"; 
    96          
    97         Add(kysymysIkkuna); 
    98     } 
    99  
    100  
    101     void LuoSeinaoikea(Vector paikka, double leveys, double korkeus) 
    102     { 
    103         PhysicsObject seinaoikea = PhysicsObject.CreateStaticObject(70, 70); 
    104         seinaoikea.Position = paikka; 
    105         seinaoikea.Image = seinaoikeanKuva; 
    106         Add(seinaoikea); 
    107     } 
    108          
     64        void LuoVihu(Vector paikka, double leveys, double korkeus) 
     65        { 
     66            vihu1 = new PhysicsObject(40, 62); 
     67            vihu1.CanRotate = false; 
     68            vihu1.Mass = 40.0; 
     69            vihu1.Position = paikka; 
     70            vihu1.Image = vihunKuva; 
     71            Add(vihu1); 
     72 
     73        } 
     74 
     75        Keskusteluikkuna ikkuna = null; 
     76 
     77        void VihuunTormays(PhysicsObject pelaaja, PhysicsObject kohde) 
     78        { 
     79            IsMouseVisible = true; 
     80            if (kohde == vihu1 && ikkuna == null) 
     81            { 
     82                ikkuna = new Keskusteluikkuna("Testiteksti", "pain1", "pain2"); 
     83                Keskusteluikkuna ikkuna2 = new Keskusteluikkuna("gfd", "gfdgsfds", "gfd"); 
     84                ikkuna.Button1ikkuna = ikkuna2; 
     85                //ikkuna.Nappi1.Clicked += new Action(delegate { Nappi1_Clicked(ikkuna); }); 
     86                ikkuna.Nappi1.Clicked += AvaaIkkuna2; 
     87                Add(ikkuna); 
     88                 
     89                /* 
     90                InputWindow kysymysIkkuna = new InputWindow("", "Nimesi?"); 
     91                kysymysIkkuna.TextEntered += vastaus; 
     92                Add(kysymysIkkuna); 
     93                 * */ 
     94            } 
     95        } 
     96 
     97        void AvaaIkkuna2() 
     98        { 
     99            Add(ikkuna.Button1ikkuna); 
     100            ikkuna.Destroy(); 
     101            ikkuna = null; 
     102        } 
     103 
     104        void Nappi1_Clicked(Keskusteluikkuna ikkuna) 
     105        { 
     106             
     107            Add(ikkuna.Button1ikkuna); 
     108            ikkuna.Destroy(); 
     109            //Add(ikkuna); 
     110        } 
     111 
     112        void vastaus(InputWindow Ikkuna) 
     113        { 
     114            Ikkuna.ControlContext.Active = false; 
     115            string vastaus = Ikkuna.InputBox.Text; 
     116            kysymysIkkuna = new MessageWindow("", "Hmm...en muista ketään tuon nimistä täällä..."); 
     117            kysymysIkkuna.Closed += new Jypeli.Widgets.Window.WindowHandler(kysymysIkkuna_Closed); 
     118 
     119 
     120            Add(kysymysIkkuna); 
     121        } 
     122 
     123        void kysymysIkkuna_Closed(Window sender) 
     124        { 
     125            kysymysIkkuna = new MessageWindow("", "Oletko uusi talossa?"); 
     126            kysymysIkkuna.OKButton.Text = "Kyllä olen"; 
     127            PushButton nappi = new PushButton(text: "Olen vieras"); 
     128            kysymysIkkuna.OKButton.Clicked += new Action(OKButton_Clicked); 
     129            nappi.Clicked += new Action(nappi_Clicked); 
     130            Add(kysymysIkkuna); 
     131            kysymysIkkuna.Add(nappi); 
     132        } 
     133 
     134        void nappi_Clicked() 
     135        { 
     136            kysymysIkkuna.Close(); 
     137            kysymysIkkuna = new MessageWindow("", "Ei vieraita, poistu"); 
     138            Add(kysymysIkkuna); 
     139        } 
     140 
     141        void OKButton_Clicked() 
     142        { 
     143            kysymysIkkuna.Close(); 
     144            kysymysIkkuna = new MessageWindow("", "Lukenut NM? (newcomers manual)"); 
     145            kysymysIkkuna.OKButton.Text = "Olen lukenut"; 
     146            PushButton painike = new PushButton(text: "En ole."); 
     147            kysymysIkkuna.OKButton.Clicked += new Action(OKButton_Clicked); 
     148            painike.Clicked += new Action(painike_Clicked); 
     149            Add(kysymysIkkuna); 
     150        } 
     151        void painike_Clicked() 
     152        { 
     153            kysymysIkkuna.Close(); 
     154            kysymysIkkuna = new MessageWindow("", "Mikset ole?"); 
     155            Add(kysymysIkkuna); 
     156        } 
     157 
     158 
     159        void LuoSeinaoikea(Vector paikka, double leveys, double korkeus) 
     160        { 
     161            PhysicsObject seinaoikea = PhysicsObject.CreateStaticObject(70, 70); 
     162            seinaoikea.Position = paikka; 
     163            seinaoikea.Image = seinaoikeanKuva; 
     164            Add(seinaoikea); 
     165        } 
     166 
    109167        void LuoSeinavasen(Vector paikka, double leveys, double korkeus) 
    110  
    111     { 
    112         PhysicsObject seinavasen = PhysicsObject.CreateStaticObject(70, 70); 
    113         seinavasen.Position = paikka; 
    114         seinavasen.Image = seinavasemmanKuva; 
    115         Add(seinavasen); 
    116  
    117     } 
    118  
    119     void LuoLattia(Vector paikka, double leveys, double korkeus) 
    120     { 
    121         PhysicsObject lattia = PhysicsObject.CreateStaticObject(70, 10); 
    122         lattia.Position = paikka; 
    123         lattia.Image = lattianKuva; 
    124         Add(lattia); 
    125     } 
    126  
    127     void LuoNostin(Vector paikka, double leveys, double korkeus) 
    128     { 
    129         PhysicsObject nostin = new PhysicsObject(69, 10); 
    130         nostin.Position = paikka; 
    131         nostin.Image = nostinKuva; 
    132         nostin.IgnoresPhysicsLogics = true; 
    133         nostin.CanRotate = false; 
    134         nostin.Mass = 10000; 
    135         nostin.Velocity = new Vector(0.0, 90.0); 
    136         AddCollisionHandler(nostin, SeinaanTormays); 
    137         Add(nostin); 
    138  
    139     } 
    140  
    141     void SeinaanTormays(PhysicsObject nostin, PhysicsObject seinavasen) 
    142     { 
    143         nostin.Velocity = -nostin.Velocity; 
    144     } 
    145  
    146  
    147     void LuoTikkaat(Vector paikka, double leveys, double korkeus) 
    148     { 
    149         PhysicsObject tikkaat = PhysicsObject.CreateStaticObject(35, 150); 
    150         tikkaat.Position = paikka; 
    151         tikkaat.Image = tikkaatKuva; 
    152         Add(tikkaat); 
    153     } 
    154     void LuoLattiatikkaat(Vector paikka, double leveys, double korkeus) 
     168        { 
     169            PhysicsObject seinavasen = PhysicsObject.CreateStaticObject(70, 70); 
     170            seinavasen.Position = paikka; 
     171            seinavasen.Image = seinavasemmanKuva; 
     172            Add(seinavasen); 
     173 
     174        } 
     175 
     176        void LuoLattia(Vector paikka, double leveys, double korkeus) 
     177        { 
     178            PhysicsObject lattia = PhysicsObject.CreateStaticObject(70, 10); 
     179            lattia.Position = paikka; 
     180            lattia.Image = lattianKuva; 
     181            Add(lattia); 
     182        } 
     183 
     184        void LuoNostin(Vector paikka, double leveys, double korkeus) 
     185        { 
     186            PhysicsObject nostin = new PhysicsObject(69, 10); 
     187            nostin.Position = paikka; 
     188            nostin.Image = nostinKuva; 
     189            nostin.IgnoresPhysicsLogics = true; 
     190            nostin.CanRotate = false; 
     191            nostin.Mass = 10000; 
     192            nostin.Velocity = new Vector(0.0, 90.0); 
     193            AddCollisionHandler(nostin, SeinaanTormays); 
     194            Add(nostin); 
     195 
     196        } 
     197 
     198        void SeinaanTormays(PhysicsObject nostin, PhysicsObject seinavasen) 
     199        { 
     200            nostin.Velocity = -nostin.Velocity; 
     201        } 
     202 
     203 
     204        void LuoTikkaat(Vector paikka, double leveys, double korkeus) 
     205        { 
     206            PhysicsObject tikkaat = PhysicsObject.CreateStaticObject(35, 150); 
     207            tikkaat.Position = paikka; 
     208            tikkaat.Image = tikkaatKuva; 
     209            Add(tikkaat); 
     210        } 
     211        void LuoLattiatikkaat(Vector paikka, double leveys, double korkeus) 
    155212        { 
    156213            PhysicsObject lattiatikkaat = PhysicsObject.CreateStaticObject(70, 70); 
     
    160217        } 
    161218 
    162     void LuoOhjain() 
    163     { 
    164         //näppäin alhaalla 
    165         Keyboard.Listen(Key.Left, ButtonState.Down, pelaaja.Walk, null, -100.0); 
    166         Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja.Walk, null, 100.0); 
    167         Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaaYlos, null); 
    168         Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaaAlas, null); 
    169  
    170         //näppäin ylhäällä 
    171         Keyboard.Listen(Key.Left, ButtonState.Released, pelaaja.StopHorizontal, null); 
    172         Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja.StopHorizontal, null); 
    173         Keyboard.Listen(Key.Up, ButtonState.Released, pelaaja.StopVertical, null); 
    174         Keyboard.Listen(Key.Down, ButtonState.Released, pelaaja.StopVertical, null); 
     219        void LuoOhjain() 
     220        { 
     221            //näppäin alhaalla 
     222            Keyboard.Listen(Key.Left, ButtonState.Down, pelaaja.Walk, null, -100.0); 
     223            Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja.Walk, null, 100.0); 
     224            Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaaYlos, null); 
     225            Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaaAlas, null); 
     226 
     227            //näppäin ylhäällä 
     228            Keyboard.Listen(Key.Left, ButtonState.Released, pelaaja.StopHorizontal, null); 
     229            Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja.StopHorizontal, null); 
     230            Keyboard.Listen(Key.Up, ButtonState.Released, pelaaja.StopVertical, null); 
     231            Keyboard.Listen(Key.Down, ButtonState.Released, pelaaja.StopVertical, null); 
     232        } 
     233 
     234 
     235        void LiikutaPelaajaaVasemmalle() 
     236        { 
     237            pelaaja.Hit(new Vector(-100, 0)); 
     238        } 
     239 
     240        void LiikutaPelaajaaOikealle() 
     241        { 
     242            pelaaja.Hit(new Vector(100, 0)); 
     243        } 
     244 
     245        void LiikutaPelaajaaYlos() 
     246        { 
     247            pelaaja.Jump(90); 
     248        } 
     249 
     250        void LiikutaPelaajaaAlas() 
     251        { 
     252            pelaaja.Hit(new Vector(0, -100)); 
     253        } 
     254 
    175255    } 
    176  
    177  
    178         void LiikutaPelaajaaVasemmalle() 
    179         { 
    180             pelaaja.Hit(new Vector(-100, 0)); 
    181         } 
    182  
    183         void LiikutaPelaajaaOikealle() 
    184         { 
    185             pelaaja.Hit(new Vector(100, 0)); 
    186         } 
    187  
    188         void LiikutaPelaajaaYlos() 
    189         { 
    190             pelaaja.Jump (90); 
    191         } 
    192  
    193         void LiikutaPelaajaaAlas() 
    194         { 
    195             pelaaja.Hit(new Vector(0, -100)); 
    196         } 
    197  
    198  
    199  
    200  
    201  
    202256} 
Note: See TracChangeset for help on using the changeset viewer.