Skip to content
Snippets Groups Projects
Commit 4d30c6b2 authored by Eskelinen Roy's avatar Eskelinen Roy
Browse files

Muutoksia.

parent 3fe01747
No related branches found
No related tags found
No related merge requests found
Showing
with 299 additions and 51 deletions
No preview for this file type
No preview for this file type
Eskape/Eskape/Content/Enemy1.png

396 B | W: | H:

Eskape/Eskape/Content/Enemy1.png

1.18 KiB | W: | H:

Eskape/Eskape/Content/Enemy1.png
Eskape/Eskape/Content/Enemy1.png
Eskape/Eskape/Content/Enemy1.png
Eskape/Eskape/Content/Enemy1.png
  • 2-up
  • Swipe
  • Onion skin
Eskape/Eskape/Content/Enemy2.png

1.21 KiB

Eskape/Eskape/Content/PlayerHero.png

2.08 KiB | W: | H:

Eskape/Eskape/Content/PlayerHero.png

1.28 KiB | W: | H:

Eskape/Eskape/Content/PlayerHero.png
Eskape/Eskape/Content/PlayerHero.png
Eskape/Eskape/Content/PlayerHero.png
Eskape/Eskape/Content/PlayerHero.png
  • 2-up
  • Swipe
  • Onion skin
Eskape/Eskape/Content/PlayerHero1.png

1.16 KiB | W: | H:

Eskape/Eskape/Content/PlayerHero1.png

1.14 KiB | W: | H:

Eskape/Eskape/Content/PlayerHero1.png
Eskape/Eskape/Content/PlayerHero1.png
Eskape/Eskape/Content/PlayerHero1.png
Eskape/Eskape/Content/PlayerHero1.png
  • 2-up
  • Swipe
  • Onion skin
Eskape/Eskape/Content/background2.jpg

87.7 KiB

Eskape/Eskape/Content/bullet.png

762 B

File added
Eskape/Eskape/Content/healthpotion.png

972 B

*
##
* B*
## ##
* B B *
## ## ##
* B* *B *
## ## ## ##
* * B* *
## ## ## ## ##
N E
######################
F
# # # ###
S
#
S
S
** #
XFEX *
XXXX ##
H ## #
##
FH E F F F #
############################ ##
N *^ F**#
## ## #### ##
# ###
* *^ #
## ## X*# ###########
S X*#
* *S X^# ## ##
## ## ## ### ## ##
#
* * * * # E
## ## ## ## # #####
#
* * F * *E#
## ## ## ## ### ##
#
T S #
###############################################################################
Eskape/Eskape/Content/nakymatonTaso.png

522 B

Eskape/Eskape/Content/norsu.png

13.2 KiB

File added
Eskape/Eskape/Content/points 2.png

1017 B

Eskape/Eskape/Content/points.png

921 B

File added
Eskape/Eskape/Content/skull.png

1.19 KiB

Eskape/Eskape/Content/spikes.png

1.49 KiB

......@@ -5,54 +5,103 @@ using Jypeli.Widgets;
using System;
using System.Collections.Generic;
/* class Vihu : PhysicsObject
{
private IntMeter elamalaskuri = new IntMeter(3, 0, 3);
public IntMeter Elamalaskuri { get { return elamalaskuri; } }
public Vihu(double leveys, double korkeus)
: base(leveys, korkeus)
{
elamalaskuri.LowerLimit += delegate { this.Destroy(); };
}
} */
public class Eskape : PhysicsGame
{
private const double NOPEUS = 150;
private const double HYPPYNOPEUS = 900;
private const int RUUDUN_KOKO = 40;
private PlatformCharacter pelaaja1;
private PlatformCharacter pelaaja;
int healthPoints = 5;
IntMeter pistelaskuri = new IntMeter(0);
// kuvat
private Image pelaajanKuva = LoadImage("PlayerHero1.png");
private Image enemyPic = LoadImage("Enemy1.png");
private Image tahtiKuva = LoadImage("tahti.png");
private Image enemyPic2 = LoadImage("Enemy2.png");
private Image point1 = LoadImage("points.png");
private Image point2 = LoadImage("points 2.png");
private Image boxPic = LoadImage("Box3.png");
private Image floorPic = LoadImage("floor.png");
private Image taustakuva = LoadImage("background1.png");
private Image invisibleFloorPic = LoadImage("nakymatonTaso.png");
private Image spikesPic = LoadImage("spikes.png");
private Image healthPotionPic = LoadImage("healthpotion.png");
private Image taustakuva = LoadImage("background2.jpg");
private Image bullet = LoadImage("bullet.png");
private Image skull = LoadImage("skull.png");
// äänet
private SoundEffect hyppyAani = LoadSoundEffect("Jump3.wav");
private SoundEffect ampuminenAani = LoadSoundEffect("Laser_Shoot.wav");
private SoundEffect rajahdysAani = LoadSoundEffect("explosion.wav");
private SoundEffect osumaAani = LoadSoundEffect("Hit_Hurt3.wav");
private SoundEffect maaliAani = LoadSoundEffect("maali.wav");
private SoundEffect coinAani = LoadSoundEffect("pickCoin.wav");
private SoundEffect hpAani = LoadSoundEffect("powerUp.wav");
public override void Begin()
{
Gravity = new Vector(0, -1500);
Gravity = new Vector(300, -2000);
LuoKentta();
LisaaNappaimet();
LuoPistelaskuri();
Camera.Follow(pelaaja1);
Camera.ZoomFactor = 1.8;
Camera.Follow(pelaaja);
Camera.ZoomFactor = 2;
Camera.StayInLevel = true;
MasterVolume = 0.5;
}
/// <summary>
/// Tähän alapuolelle tulee kaikki luo ja lisää -tapahtumat.
/// </summary>
private void LuoKentta()
{
TileMap kentta = TileMap.FromLevelAsset("kentta1.txt");
kentta.SetTileMethod('#', LisaaTaso);
kentta.SetTileMethod('*', LisaaTahti);
kentta.SetTileMethod('X', LisaaNakymatonTaso);
kentta.SetTileMethod('T', LisaaTappavaTaso);
kentta.SetTileMethod('*', LisaaPiste);
kentta.SetTileMethod('^', LisaaPiste2);
kentta.SetTileMethod('N', LisaaPelaaja);
kentta.SetTileMethod('E', LisaaVihollinen);
kentta.SetTileMethod('F', LisaaVihollinen2);
kentta.SetTileMethod('B', LisaaLaatikko);
kentta.SetTileMethod('S', LisaaPommi);
kentta.SetTileMethod('H', LisaaHealthPotion);
kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
Level.CreateBorders();
Level.Background.Image = taustakuva;
Level.Background.TileToLevel();
}
void LisaaHealthPotion(Vector paikka, double leveys, double korkeus)
{
PhysicsObject healthPotion = new PhysicsObject(leveys, korkeus);
healthPotion.IgnoresCollisionResponse = true;
healthPotion.Position = paikka;
healthPotion.Tag = "health";
healthPotion.Image = healthPotionPic;
Add(healthPotion);
}
private void LisaaTaso(Vector paikka, double leveys, double korkeus)
{
PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
......@@ -62,42 +111,176 @@ public class Eskape : PhysicsGame
Add(taso);
}
private void LisaaTahti(Vector paikka, double leveys, double korkeus)
private void LisaaNakymatonTaso(Vector paikka, double leveys, double korkeus)
{
PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
taso.Position = paikka;
taso.Image = invisibleFloorPic;
taso.Tag = "floor";
Add(taso);
}
private void LisaaTappavaTaso(Vector paikka, double leveys, double korkeus)
{
PhysicsObject spikes = PhysicsObject.CreateStaticObject(leveys, korkeus);
spikes.Position = paikka;
spikes.Image = spikesPic;
spikes.Tag = "spikes";
Add(spikes);
}
private void LisaaPiste(Vector paikka, double leveys, double korkeus)
{
PhysicsObject piste = PhysicsObject.CreateStaticObject(leveys, korkeus);
piste.IgnoresCollisionResponse = true;
piste.Position = paikka;
piste.Image = point1;
piste.Tag = "piste";
Add(piste);
}
private void LisaaPiste2(Vector paikka, double leveys, double korkeus)
{
PhysicsObject piste2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
piste2.IgnoresCollisionResponse = true;
piste2.Position = paikka;
piste2.Image = point2;
piste2.Tag = "piste2";
Add(piste2);
}
public void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
{
PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
tahti.IgnoresCollisionResponse = true;
tahti.Position = paikka;
tahti.Image = tahtiKuva;
tahti.Tag = "tahti";
Add(tahti);
pelaaja = new PlatformCharacter(35, 39);
pelaaja.Position = paikka;
pelaaja.Mass = 1.8;
pelaaja.Image = pelaajanKuva;
pelaaja.Weapon = new AssaultRifle(0, 0);
pelaaja.Weapon.Ammo.Value = 999;
pelaaja.Weapon.ProjectileCollision = AmmusOsui;
pelaaja.Tag = "pelaaja";
AddCollisionHandler(pelaaja, "piste", TormaaPisteeseen);
AddCollisionHandler(pelaaja, "piste2", TormaaPisteeseen2);
AddCollisionHandler(pelaaja, "tappavat", TormaaPommiin);
AddCollisionHandler(pelaaja, "health", TormaaHealthPotion);
AddCollisionHandler(pelaaja, "spikes", TormaaTappavaanTasoon);
// AddCollisionHandler(pelaaja, "tappavat", CollisionHandler.ExplodeObject(100, true));
Add(pelaaja);
}
private void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
private void LisaaPommi(Vector paikka, double leveys, double korkeus)
{
pelaaja1 = new PlatformCharacter(leveys, korkeus);
pelaaja1.Position = paikka;
pelaaja1.Mass = 4.0;
pelaaja1.Image = pelaajanKuva;
pelaaja1.Weapon = new AssaultRifle(0, 0);
pelaaja1.Weapon.Ammo.Value = 999;
pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
Add(pelaaja1);
/// Pommi toimii satunnaisesti. Tuhoamalla sen saa pisteitä.
/// Pommi satuttaa osuessaan.
///
PhysicsObject paakallo = new PhysicsObject(40, 40);
RandomMoverBrain satunnaisaivot = new RandomMoverBrain(150); // tekoäly
satunnaisaivot.ChangeMovementSeconds = 5;
paakallo.Brain = satunnaisaivot;
satunnaisaivot.WanderRadius = 400;
paakallo.Position = paikka;
paakallo.Image = skull;
paakallo.Tag = "tappavat";
Add(paakallo);
}
private void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
{
// tähän tulee vihollinen
PhysicsObject enemy1 = new PhysicsObject(leveys, korkeus);
PlatformCharacter enemy1 = new PlatformCharacter(40, 40);
enemy1.Mass = 8.0;
enemy1.Position = paikka;
enemy1.Image = enemyPic;
enemy1.Tag = "vihu";
enemy1.CanRotate = false;
Add(enemy1);
RandomMoverBrain satunnaisaivot = new RandomMoverBrain(50);
satunnaisaivot.ChangeMovementSeconds = 5;
enemy1.Brain = satunnaisaivot;
FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja"); // tekoäly
// vihollisen tekoäly
seuraajanAivot.Active = true;
seuraajanAivot.Speed = 50;
seuraajanAivot.DistanceFar = 400;
seuraajanAivot.DistanceClose = 200;
seuraajanAivot.TurnWhileMoving = true;
seuraajanAivot.StopWhenTargetClose = true;
// seuraajanAivot.TargetClose += MitaTapahtuuKunOllaanLahella;
seuraajanAivot.FarBrain = satunnaisaivot;
enemy1.Brain = seuraajanAivot;
// seuraajanAivot.TargetClose += MitaTapahtuuKunOllaanLahella;
}
private void LisaaVihollinen2(Vector paikka, double leveys, double korkeus)
{
// Täysin identtinen aikaisemman vihollisen kanssa. On vain erivärinen.
ShootingPlatformCharacter enemy2 = new ShootingPlatformCharacter(40, 40);
enemy2.Mass = 8.0;
enemy2.Position = paikka;
enemy2.Image = enemyPic2;
enemy2.Tag = "vihu";
enemy2.CanRotate = false;
Add(enemy2);
RandomMoverBrain satunnaisaivot = new RandomMoverBrain(50);
satunnaisaivot.ChangeMovementSeconds = 5;
enemy2.Brain = satunnaisaivot;
FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja"); // tekoäly
// vihollisen tekoäly
seuraajanAivot.Active = true;
seuraajanAivot.Speed = 50;
seuraajanAivot.DistanceFar = 400;
seuraajanAivot.DistanceClose = 200;
seuraajanAivot.TurnWhileMoving = true;
seuraajanAivot.StopWhenTargetClose = true;
// seuraajanAivot.TargetClose += MitaTapahtuuKunOllaanLahella;
seuraajanAivot.FarBrain = satunnaisaivot;
enemy2.Brain = seuraajanAivot;
}
/* private void MitaTapahtuuKunOllaanLahella;
{
AmmuAseella.Play;
} */
void LuoPistelaskuri()
{
pistelaskuri = new IntMeter(0);
Label pistenaytto = new Label();
pistenaytto.X = Screen.Left + 100;
pistenaytto.Y = Screen.Top - 100;
pistenaytto.TextColor = Color.DarkYellow;
pistenaytto.Color = Color.White;
pistenaytto.BindTo(pistelaskuri);
Add(pistenaytto);
}
private void LisaaLaatikko(Vector paikka, double leveys, double korkeus)
{
// tähän tulee vihollinen
PhysicsObject box = new PhysicsObject(leveys, korkeus);
box.Mass = 5.0;
box.Position = paikka;
box.Image = boxPic;
Add(box);
......@@ -108,30 +291,37 @@ public class Eskape : PhysicsGame
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);
Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja, -NOPEUS);
Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja, NOPEUS);
Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja, HYPPYNOPEUS);
Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu", pelaaja);
PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
}
void AmmuAseella(PlatformCharacter pelaaja)
private void AmmuAseella(PlatformCharacter pelaaja)
{
ampuminenAani.Play();
PhysicsObject ammus = pelaaja.Weapon.Shoot();
pelaaja.Weapon.FireRate = 2;
pelaaja.Weapon.ProjectileCollision = AmmusOsui;
ampuminenAani.Play();
if (ammus != null)
{
ammus.Size *= 3;
// ammus.Image = ...
ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
ammus.Image = bullet;
ammus.MaximumLifetime = TimeSpan.FromSeconds(7.0);
}
}
void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
{
osumaAani.Play();
ammus.Destroy();
}
private void Liikuta(PlatformCharacter hahmo, double nopeus)
{
hahmo.Walk(nopeus);
......@@ -143,11 +333,50 @@ public class Eskape : PhysicsGame
hahmo.Jump(nopeus);
}
private void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
private void TormaaHealthPotion(PhysicsObject hahmo, PhysicsObject healthPotion)
{
healthPoints++;
hpAani.Play();
MessageDisplay.Add("HP +1");
healthPotion.Destroy();
}
private void TormaaPisteeseen(PhysicsObject hahmo, PhysicsObject piste)
{
pistelaskuri.Value += 1;
coinAani.Play();
MessageDisplay.Add("+1");
piste.Destroy();
// pistelaskuri.Value += 1;
}
private void TormaaPisteeseen2(PhysicsObject hahmo, PhysicsObject piste2)
{
coinAani.Play();
MessageDisplay.Add("+5");
piste2.Destroy();
pistelaskuri.Value += 5;
}
private void TormaaPommiin(PhysicsObject hahmo, PhysicsObject skull)
{
healthPoints--;
if (healthPoints <= 0)
pelaaja.Destroy();
rajahdysAani.Play();
MessageDisplay.Add("HP -1");
skull.Destroy();
}
private void TormaaTappavaanTasoon(PhysicsObject hahmo, PhysicsObject spikes)
{
maaliAani.Play();
MessageDisplay.Add("Keräsit tähden!");
tahti.Destroy();
healthPoints--;
if (healthPoints <= 0)
pelaaja.Destroy();
MessageDisplay.Add("Kuolit");
// lisää tuskanhuuto
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment