Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using Jypeli;
- using Jypeli.Assets;
- using Jypeli.Controls;
- using Jypeli.Widgets;
- public class Tasohyppelipeli1 : PhysicsGame
- {
- IntMeter keratytTahdet;
- IntMeter tahtienLkm;
- const double Nopeus = 200;
- const double HyppyNopeus = 750;
- const int RUUDUN_KOKO = 40;
- PlatformCharacter pelaaja1;
- PlatformCharacter vihu;
- Image pelaajanKuva = LoadImage("norsu");
- Image tahtiKuva = LoadImage("tahti");
- SoundEffect maaliAani = LoadSoundEffect("maali");
- public override void Begin()
- {
- AloitaPeli();
- }
- void AloitaPeli()
- {
- ClearAll();
- Gravity = new Vector(0, -1000);
- LuoPistelaskurit();
- LuoKentta();
- LisaaNappaimet();
- Camera.Follow(pelaaja1);
- Camera.ZoomFactor = 1.2;
- Camera.StayInLevel = true;
- }
- void LuoPistelaskurit()
- {
- tahtienLkm = new IntMeter(0);
- keratytTahdet = new IntMeter(0);
- Label tahtiLaskuri = new Label();
- tahtiLaskuri.X = Level.Right - 20;
- tahtiLaskuri.Y = Level.Top - 20;
- }
- void LuoKentta()
- {
- TileMap kentta = TileMap.FromLevelAsset("kentta1");
- kentta.SetTileMethod('#', LisaaTaso);
- kentta.SetTileMethod('*', LisaaTahti);
- kentta.SetTileMethod('N', LisaaPelaaja);
- kentta.SetTileMethod('-', LisaaVihu);
- kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
- Level.CreateBorders();
- Level.Background.CreateGradient(Color.White, Color.SkyBlue);
- }
- void LisaaVihu(Vector paikka, double leveys, double korkeus)
- {
- vihu = new PlatformCharacter(leveys, korkeus);
- vihu.Shape = Shape.Circle;
- vihu.Position = paikka;
- vihu.Mass = 200.0;
- vihu.Tag = "vihu";
- PlatformWandererBrain aivot = new PlatformWandererBrain();
- aivot.Speed = 100;
- vihu.Brain = aivot;
- Add(vihu);
- }
- void LisaaTaso(Vector paikka, double leveys, double korkeus)
- {
- PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
- taso.Position = paikka;
- taso.Color = Color.Green;
- Add(taso);
- }
- void LisaaTahti(Vector paikka, double leveys, double korkeus)
- {
- tahtienLkm.AddValue(1);
- PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
- tahti.IgnoresCollisionResponse = true;
- tahti.Position = paikka;
- tahti.Image = tahtiKuva;
- tahti.Tag = "tahti";
- Add(tahti);
- }
- void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
- {
- pelaaja1 = new PlatformCharacter(leveys, korkeus);
- pelaaja1.Position = paikka;
- pelaaja1.Mass = 4.0;
- pelaaja1.Image = pelaajanKuva;
- pelaaja1.Tag = "pelaaja";
- AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
- AddCollisionHandler(pelaaja1, "vihu", TormaaVihuun);
- Add(pelaaja1);
- }
- void TormaaVihuun(PhysicsObject tormaaja, PhysicsObject kohde)
- {
- AloitaPeli();
- }
- void LisaaNappaimet()
- {
- Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
- Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
- Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -Nopeus);
- Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, Nopeus);
- Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, HyppyNopeus);
- ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
- ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -Nopeus);
- ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, Nopeus);
- ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, HyppyNopeus);
- PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
- }
- void Liikuta(PlatformCharacter hahmo, double nopeus)
- {
- hahmo.Walk(nopeus);
- }
- void Hyppaa(PlatformCharacter hahmo, double nopeus)
- {
- hahmo.Jump(nopeus);
- }
- void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
- {
- maaliAani.Play();
- MessageDisplay.Add("Keräsit tähden!");
- tahti.Destroy();
- keratytTahdet.AddValue(1); //seuraava koodinpätkä tarkistaa onko tähtiä kerätty tarpeeksi
- if (keratytTahdet.Value == tahtienLkm.Value)
- {
- AloitaPeli();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement