Skip to content
Snippets Groups Projects
Commit 25049a06 authored by Kopperoinen Paulus's avatar Kopperoinen Paulus
Browse files

Mato liikkuu kentällä, meni aikaa, kun en tajunnut tehdä madosta ensin omaa...

Mato liikkuu kentällä, meni aikaa, kun en tajunnut tehdä madosta ensin omaa classia. Seuraavaksi tarkoituksena saada omenat lisättyä kentälle ja kasvattaa matoa
parent 55a52737
No related branches found
No related tags found
No related merge requests found
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Runtime.ExceptionServices;
using System.Xml.Serialization; using System.Xml.Serialization;
using Jypeli; using Jypeli;
using Jypeli.Assets; using Jypeli.Assets;
...@@ -15,141 +16,167 @@ namespace Matopeli; ...@@ -15,141 +16,167 @@ namespace Matopeli;
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public class Matopeli : PhysicsGame public class Matopeli : PhysicsGame
{
private static readonly string[] kentta ={
"---------------",
"- -",
"- -",
"- o -",
"- -",
"- -",
"- km -",
"- -",
"- -",
"- -",
"- -",
"- -",
"- -",
"---------------",
};
private int seinaleveys= 600 / kentta.Length;
private int seinakorkeus = 600 / kentta.Length;
private static readonly Image seinakuva = LoadImage("seina.png");
private static readonly Image matopaakuva = LoadImage("matopaa.png");
private readonly Image matokehokuva = LoadImage("matokeho.png");
private readonly Image omenakuva = LoadImage("omena.png");
private readonly Image kenttatausta = LoadImage("kenttatausta.png");
public readonly IntMeter pisteet = new IntMeter(0);
private Label pisteNaytto;
public override void Begin()
{ {
ClearAll();
// Background.Image = LoadImage("kenttatausta"); private static readonly string[] kentta ={
//LuoTausta(); "---------------",
"- -",
AloitaUusiPeli(); "- -",
} "- -",
public void AloitaUusiPeli() "- -",
{ "- -",
pisteet.Value = 0; "- m -",
TileMap seinat = TileMap.FromStringArray(kentta); "- -",
seinat.SetTileMethod('-',LuoSeina); "- -",
seinat.SetTileMethod('m',LuoMatopaa); "- -",
seinat.SetTileMethod('o',LuoOmena); "- -",
//seinat.SetTileMethod('k',LuoMatokeho); "- -",
"- -",
seinat.Execute(seinaleveys, seinakorkeus); "---------------",
ArvotaanOmena(kentta); };
Matoliikkeelle(); private int seinaleveys= 600 / kentta.Length;
} private int seinakorkeus = 600 / kentta.Length;
private void LuoSeina(Vector paikka, double leveys, double korkeus)
private static readonly Image seinakuva = LoadImage("seina.png");
private static readonly Image matopaakuva = LoadImage("matopaa.png");
private readonly Image matokehokuva = LoadImage("matokeho.png");
private readonly Image omenakuva = LoadImage("omena.png");
private readonly Image kenttatausta = LoadImage("kenttatausta.png");
private LiikkuvaMato mato;
private LiikkuvaMato omena;
public readonly IntMeter pisteet = new IntMeter(0);
public override void Begin()
{ {
PhysicsObject seina = new PhysicsObject(leveys, korkeus); ClearAll();
seina.Position = paikka; // Background.Image = LoadImage("kenttatausta");
seina.Image = seinakuva; //LuoTausta();
Add(seina);
AloitaUusiPeli();
} }
private void LuoOmena(Vector paikka, double leveys, double korkeus)
{
PhysicsObject omena = new PhysicsObject(leveys, korkeus);
omena.Position = paikka;
omena.Image = omenakuva;
omena.Tag = "omena";
Add(omena);
}
private void LuoMatopaa(Vector paikka, double leveys, double korkeus)
{
PhysicsObject matopaa = new PhysicsObject(leveys, korkeus);
matopaa.Position = paikka;
matopaa.Image = Matopeli.matopaakuva;
matopaa.Tag = matopaa;
AddCollisionHandler(matopaa, "omena", delegate(IPhysicsObject matopaa, IPhysicsObject omena) { MatosyoOmenan(omena); pisteet.Value += 1; });
Timer lahtoaika = new Timer();
lahtoaika.Interval = 1.5;
Add(matopaa);
lahtoaika.Timeout += KaannyOikea(matopaa);
}
//private void LuoMatokeho(Vector paikka, double leveys, double korkeus)
//{
// PhysicsObject matokeho = new PhysicsObject(leveys, korkeus);
//matokeho.Position = paikka;
//matokeho.Image = matokehokuva;
//Add(matokeho);
//})
private void AsetaOhjaimet()
{
Keyboard.Listen(Key.Up, ButtonState.Down, KaannyYlos, "Turn upwards";
Keyboard.Listen(Key.Down, ButtonState.Down, KaannyAlas, "Turn downwards";
Keyboard.Listen(Key.Left, ButtonState.Down, KaannaVasen, "Turn left";
Keyboard.Listen(Key.Right, ButtonState.Down, KaannaOikea, "Turn right";
}
private void ArvotaanOmena(string[]t)
{
int x = t.GetLength(0);
int y = t.GetLength(1);
int ix = RandomGen.NextInt(1, x - 1);
int iy = RandomGen.NextInt(1, y - 1);
Vector paikka = (ix, iy);
LuoOmena(paikka, seinaleveys, seinakorkeus);
}
public void AloitaUusiPeli()
{
// pisteet.Value = 0;
private void MatosyoOmenan(IPhysicsObject omena) TileMap seinat = TileMap.FromStringArray(kentta);
{ seinat.SetTileMethod('-', LuoSeina);
seinat['m'] = LuoMato;
//seinat.SetTileMethod('k',LuoMatokeho);
seinat.Insert(seinaleveys, seinakorkeus);
Asetaohjaimet();
seinat.Execute(seinaleveys, seinakorkeus);
LuoOmena();
}
private void Asetaohjaimet()
{
Keyboard.Listen(Key.Up, ButtonState.Down, KaannyYlos, "Turn upwards");
Keyboard.Listen(Key.Down, ButtonState.Down, KaannyAlas, "Turn downwards");
Keyboard.Listen(Key.Left, ButtonState.Down, KaannyVasen, "Turn left");
Keyboard.Listen(Key.Right, ButtonState.Down, KaannyOikea, "Turn right");
}
private void KaannyYlos()
{
mato.Velocity = new Vector(0, 150);
mato.Angle = Angle.FromDegrees(90);
}
private void KaannyAlas()
{
mato.Velocity = new Vector(0, -150);
mato.Angle = Angle.FromDegrees(270);
}
private void KaannyVasen()
{
mato.Velocity = new Vector(-150, 0);
mato.Angle = Angle.FromDegrees(180);
}
private void KaannyOikea()
{
mato.Velocity = new Vector(150, 0);
mato.Angle = Angle.FromDegrees(0);
}
private void LuoSeina(Vector paikka, double leveys, double korkeus)
{
PhysicsObject seina = new PhysicsObject(leveys, korkeus);
seina.Position = paikka;
seina.Image = seinakuva;
seina.Tag = "seina";
seina.MakeStatic();
Add(seina);
}
pisteet+;
omena.Destroy();
}
private void KaannyVasen(IPhysicsObject matopaa)
{
} private PhysicsObject LuoMato()
{
private void KaannyOikea(IPhysicsObject matopaa) mato = new LiikkuvaMato(seinaleveys, seinakorkeus);
{ mato.Image = Matopeli.matopaakuva;
matopaa.Push(new Vector(1000, 0)); mato.Tag = "mato";
pelaaja1.MaxVelocity = 200; mato.Velocity = new Vector(150, 0);
} AddCollisionHandler(mato, "seina", TormaaSeinaan);
AddCollisionHandler(mato, "omena", SyoOmenan);
private void KaannyAlas(IPhysicsObject matopaa) return mato;
{
}
private PhysicsObject LuoOmena()
{
omena = new LiikkuvaMato(seinaleveys, seinakorkeus);
omena.Image = omenakuva;
omena.Tag = "omena";
return omena;
}
private void TormaaSeinaan(IPhysicsObject mato,IPhysicsObject seina)
{
mato.Velocity = new Vector(0,0);
seina.Velocity = new Vector(0, 0);
}
private void SyoOmenan(IPhysicsObject mato, IPhysicsObject omena)
{
omena.Destroy();
}
} }
private void KaannyYlos(IPhysicsObject matopaa)
public class LiikkuvaMato : PhysicsObject
{ {
public LiikkuvaMato(double leveys, double korkeus)
: base(leveys, korkeus)
{
Mass = 10000;
IgnoresGravity = true;
IsUpdated = true;
}
}
}
}
\ No newline at end of file
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