Skip to content
Snippets Groups Projects
Commit 94b888da authored by Toivanen Suvi Leena Anneli's avatar Toivanen Suvi Leena Anneli
Browse files

koodi toimii nyt

parent 378d8bdd
No related branches found
No related tags found
No related merge requests found
No preview for this file type
File added
File added
File added
File added
peli/harkkatyö/pomppu possu/Content/porkkananKuva.png

257 KiB

peli/harkkatyö/pomppu possu/Content/porkkananKuva3.png

254 KiB

......@@ -2,14 +2,12 @@
using Jypeli;
public class Megaporkkanat : PhysicsObject
{
private Color[] _varit; // Yksityinen oliomuuttuja
private int _osumat;
public Megaporkkanat(double leveys, double korkeus, Color[] varit) : base(leveys, korkeus)
public Megaporkkanat(double leveys, double korkeus) : base(leveys, korkeus)
{
_varit = varit;
_osumat = 0;
Color = varit[0];
}
public void OtaVastaanOsuma()
......@@ -19,14 +17,11 @@ public class Megaporkkanat : PhysicsObject
{
TuhoaPalikka();
}
else Color = _varit[_osumat];
}
public void TuhoaPalikka()
{
// Yritin lisätä äänen megaporkkanan keräämisestä ja viestin
// _pisteAani.Play();
this.Destroy();
}
}
\ No newline at end of file
namespace pomppu_possu;
using Jypeli;
public class Tasot : Megaporkkanat
public class Tasot : PhysicsObject
{
public Tasot(double leveys, double korkeus)
: base(leveys, korkeus,new Color[] { Jypeli.Color.Pink, Jypeli.Color.SeaGreen, Jypeli.Color.Black })
: base(leveys, korkeus, Jypeli.Shape.Rectangle)
{
}
}
\ No newline at end of file
......@@ -12,107 +12,120 @@ namespace pomppu_possu;
/// <summary>
/// Eeppinen tasohyppely peli
/// </summary>
/// Kenttä pitää vielä luoda tekstitiedostoa käyttäen
/// Täytyy lisätä hyppy käskyihin
/// Lisäsin kuvat Content kansioon mutta ohjelma ei käänny nyt
/// Vaihtelin muutamia nimiä, kun herjasi niitä keltasena
public class PomppuPossu : PhysicsGame
{
private const double NOPEUS = 200;
private const double HYPPYNOPEUS = 750;
private const int RUUDUN_KOKO = 40;
private const int RUUDUN_KOKO = 60;
private PlatformCharacter pomppuPossu;
// private Image pomppuPossunKuva = LoadImage("pomppupossu.png");
// private Image porkkanaKuva = LoadImage("porkkananKuva.png");
// private SoundEffect _pisteAani = LoadSoundEffect("maali.wav");
private Image _pomppuPossunKuva = LoadImage("pomppupossu.png");
private Image _porkkanaKuva = LoadImage("porkkananKuva3.png");
private SoundEffect _pisteAani = LoadSoundEffect("maali.wav");
/// <summary>
/// Pääohjelma luo kentän ja näppäinkomennot.
/// </summary>
public override void Begin()
{
Gravity = new Vector(0, -1000);
LuoKentta();
Level.Size = new Vector(1920, 1080);
SetWindowSize(1920, 1080);
CenterWindow();
Camera.ZoomToAllObjects(100);
Camera.Follow(pomppuPossu);
Camera.ZoomFactor = 1.2;
Camera.StayInLevel = true;
MasterVolume = 0.5;
Level.CreateBorders();
Level.Background.Color = Color.SpringGreen;
// PlatformCharacter pomppuPossu = new PlatformCharacter(30, 80, Shape.Rectangle);
// pomppuPossu.Image = _pomppuPossunKuva;
//pomppuPossu.Mass = 4.0;
// Add(pomppuPossu);
Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pomppuPossu, HYPPYNOPEUS);
Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa vasemmalle", pomppuPossu, -NOPEUS);
Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa oikealle", pomppuPossu, NOPEUS);
for (int i = 0; i < 10; i++)
{
Color[] varit = { Color.Black, Color.White };
Megaporkkanat megaporkkana = new Megaporkkanat(60, 60, varit);
megaporkkana.Shape = Shape.Circle;
megaporkkana.Position = RandomGen.NextVector(Level.BoundingRect);
megaporkkana.MakeStatic();
// megaporkkana.Image = _porkkanaKuva;
AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, megaporkkana, TormattiinEsineeseen);
Add(megaporkkana);
}
// tein version jossa tasot luodaan omalla aliohjelmalla
//for (int i = 0; i < 5; i++)
//{
// Tasot paikallaan = new Tasot(150, 20);
// paikallaan.MakeStatic();
// paikallaan.Position = RandomGen.NextVector(Level.BoundingRect);
// Add(paikallaan);
//}
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
}
// loin kentän aliohjelmaa käyttäen, jotta saadaan
/// <summary>
/// Funktio luo kentän hyödyntäen txt tiedostoa.
/// </summary>
private void LuoKentta()
{
TileMap kentta = TileMap.FromLevelAsset("kentta1.txt");
kentta.SetTileMethod('#', LisaaTaso);
kentta.SetTileMethod('N', LisaaPelaaja);
kentta.SetTileMethod('*', LisaaPorkkana);
kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
Level.Background.CreateGradient(Color.White, Color.SkyBlue);
}
/// <summary>
/// Funktio lisää kerättävät objektit kentälle
/// </summary>
/// <param name="paikka">Mihin objekti tulee kentällä</param>
/// <param name="leveys">Leveys</param>
/// <param name="korkeus">Korkeus</param>
private void LisaaPorkkana(Vector paikka, double leveys, double korkeus)
{
Megaporkkanat megaporkkana = new Megaporkkanat(60, 60);
megaporkkana.Position = paikka;
megaporkkana.MakeStatic();
megaporkkana.Image = _porkkanaKuva;
Add(megaporkkana);
}
/// <summary>
/// Funktio lisää tasot kentälle.
/// </summary>
/// <param name="paikka">paikka</param>
/// <param name="leveys">leveys</param>
/// <param name="korkeus">korkeus</param>
private void LisaaTaso(Vector paikka, double leveys, double korkeus)
{
Tasot taso = new Tasot(leveys, korkeus);
Tasot taso = new Tasot(leveys, 0.5*korkeus);
taso.Position = paikka;
taso.Color = Color.SpringGreen;
taso.MakeStatic();
Add(taso);
}
/// <summary>
/// Funktio lisää pelaajan kentälle.
/// </summary>
/// <param name="paikka">paikka</param>
/// <param name="leveys">leveys</param>
/// <param name="korkeus">korkeus</param>
private void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
{
pomppuPossu = new PlatformCharacter(leveys, korkeus);
pomppuPossu = new PlatformCharacter(60, 60);
pomppuPossu.Position = paikka;
pomppuPossu.Mass = 4.0;
//pomppuPossu.Image = pomppuPossunKuva;
//AddCollisionHandler(pomppuPossu, "tahti", TormaaTahteen);
pomppuPossu.Image = _pomppuPossunKuva;
AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, TormattiinEsineeseen);
Add(pomppuPossu);
}
/// <summary>
/// Funktio luo liikkeen sivuille pelaajalle, jota kutsutaan näppäimistöllä.
/// </summary>
/// <param name="pomppuPossu">pelaaja</param>
/// <param name="nopeus">liike</param>
private void Liikuta(PlatformCharacter pomppuPossu, double nopeus)
{
pomppuPossu.Walk(nopeus);
}
/// <summary>
/// Funktio luo liikkeen ylöspäin, jota kutsutaan näppäimistöllä.
/// </summary>
/// <param name="pomppuPossu">pelaaja</param>
/// <param name="nopeus">liike</param>
private void Hyppaa(PlatformCharacter pomppuPossu, double nopeus)
{
pomppuPossu.Jump(nopeus);
}
/// <summary>
/// Funktio käsittelee törmäykset.
/// </summary>
/// <param name="tormaaja">pelaaja</param>
/// <param name="kohde">kerättävät pisteet</param>
public void TormattiinEsineeseen(PhysicsObject tormaaja, Megaporkkanat kohde)
{
kohde.OtaVastaanOsuma();
// _pisteAani.Play(); // Yritin lisätä megaporkkanoihin, en osannu xD
_pisteAani.Play();
MessageDisplay.Add("Megaporkkana kerätty!"); //Lisäsin viestin
}
......@@ -125,8 +138,6 @@ public class PomppuPossu : PhysicsGame
{
liikuteltava.Push(suunta);
}
// Pomppu possun megamaailma
}
......
......@@ -18,4 +18,19 @@
<Content Include="Content\Content\.DS_Store" />
</ItemGroup>
<ItemGroup>
<None Update="Content\porkkananKuva3.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Content\pomppupossu.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Content\maali.wav">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Content\kentta1.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
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