Changeset 1988 for 2011/24/EkiM/nimeton/nimeton/nimeton/Peli.cs
- Timestamp:
- 2011-06-14 14:57:25 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2011/24/EkiM/nimeton/nimeton/nimeton/Peli.cs
r1963 r1988 4 4 using System.Text; 5 5 using Jypeli; 6 7 class Peli : Game 6 using Jypeli.Widgets; 7 8 class Peli : PhysicsGame 8 9 { 9 Image seinanKuva = LoadImage("seina"); 10 11 const int ruudunLeveys = 70; 12 const int ruudunKorkeus = 70; 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 13 24 14 25 public override void Begin() 15 26 { 16 LuoSeina(); 17 //LuoLattia(); 18 /* 19 GameObject Seina; 20 GameObject Lattia; 21 GameObject Koysi; 22 GameObject Hissi; 23 GameObject Nostin; 24 GameObject Ovi; 25 GameObject Putki; 26 GameObject Tikkaat; 27 * */ 27 Gravity = new Vector(0.0, -500.0); 28 LataaKentta("map.txt"); 29 Camera.ZoomToLevel(); 30 31 LuoOhjain(); 28 32 } 29 33 … … 32 36 33 37 TileMap merkit = TileMap.FromFile(map); 34 /* 35 merkit['|'] = LuoSeina; 36 merkit['_'] = LuoLattia; 37 merkit['I'] = LuoKoysi; 38 merkit['E'] = LuoHissi; 39 merkit['L'] = LuoNostin; 40 * */ 41 } 42 43 void LuoSeina() 44 { 45 PhysicsObject seina = PhysicsObject.CreateStaticObject(70, 70); 46 seina.Image = seinanKuva; 47 Add(seina); 48 } 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) 52 { 53 pelaaja = new PlatformCharacter(40, 62); 54 pelaaja.CanRotate = false; 55 pelaaja.Mass = 40.0; 56 pelaaja.Position = paikka; 57 pelaaja.Image = pelaajaKuva; 58 AddCollisionHandler(pelaaja, VihuunTormays); 59 Add(pelaaja); 60 61 } 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 109 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) 155 { 156 PhysicsObject lattiatikkaat = PhysicsObject.CreateStaticObject(70, 70); 157 lattiatikkaat.Position = paikka; 158 lattiatikkaat.Image = lattiatikkaatKuva; 159 Add(lattiatikkaat); 160 } 161 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); 175 } 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 49 201 50 202 }
Note: See TracChangeset
for help on using the changeset viewer.