Skip to content
Snippets Groups Projects
Commit 70b774c5 authored by Hanki Sakari's avatar Hanki Sakari
Browse files

Kelaboteille on lisätty aseet/jonkinlainen projektiilinheittomekaniikka

parent 78860f06
No related branches found
No related tags found
No related merge requests found
KelaCombat/KelaCombatTesti/Content/kentta1.png

555 B | W: | H:

KelaCombat/KelaCombatTesti/Content/kentta1.png

573 B | W: | H:

KelaCombat/KelaCombatTesti/Content/kentta1.png
KelaCombat/KelaCombatTesti/Content/kentta1.png
KelaCombat/KelaCombatTesti/Content/kentta1.png
KelaCombat/KelaCombatTesti/Content/kentta1.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -71,17 +71,17 @@ namespace KelaCombatTesti;
void LiikuVasemmalle(Vector vektori)
{
pelaaja.Walk(-100);
pelaaja.Walk(-120);
}
void LiikuOikealle(Vector vektori)
{
pelaaja.Walk(100);
pelaaja.Walk(120);
}
void Hyppaa(Vector vektori)
{
pelaaja.Jump(300.0);
pelaaja.Jump(280.0);
}
}
......@@ -93,7 +93,7 @@ namespace KelaCombatTesti;
{
Level.Background.CreateGradient(Color.DarkGray, Color.Blue);
Gravity = new Vector(0, -981.0);
Gravity = new Vector(0, -1100.0);
// pelissä kentät luodaan piirtämällä pikseleitä. Pikselin väri kuvaa aina jotain tiettyä asiaa kentällä
......@@ -105,7 +105,7 @@ namespace KelaCombatTesti;
ruudut.SetTileMethod(Color.Red, LuoKelabottiSpawni); //PUNAISEEN voi spawnaa vihu
ruudut.SetTileMethod(Color.SkyBlue, LuoViinapullo); //VAALEANSNISET on pelaajaa parantavia viinapulloja
ruudut.Execute(70, 70);
ruudut.Execute(80, 80);
......@@ -166,6 +166,7 @@ namespace KelaCombatTesti;
//Siis pelaajan elämien väheneminen VahnigoitaPelaajaa-aliohjelman mukaisesti
AddCollisionHandler(pelaaja, "Kelabotti", VahingoitaPelaajaa);
AddCollisionHandler(pelaaja, "Viinapullo", ParannaPelaajaa);
AddCollisionHandler(pelaaja, "kappale", VahingoitaPelaajaa);
Add(pelaaja);
......@@ -241,14 +242,17 @@ namespace KelaCombatTesti;
/// <returns>Kelabotti</returns>
void LuoKelabotti()
{
Jypeli.PhysicsObject spawni = spawnipaikat[RandomGen.NextInt(spawnipaikat.Count)];
PhysicsObject spawni = spawnipaikat[RandomGen.NextInt(spawnipaikat.Count)];
PlatformCharacter Kelabotti = new PlatformCharacter(80.0, 80.0);
Kelabotti.Color = Color.Orange;
Kelabotti.Image = KelabottiKuva;
Kelabotti.CollisionIgnoreGroup = 3;
Kelabotti.MirrorImage();
Kelabotinelamalaskuri = new IntMeter(5); // Alussa on 5 elämää
Kelabotti.Tag = "Kelabotti";
Kelabotti.Position = spawni.Position;
Kelabotti.Weapon = new AssaultRifle(30, 10);
Kelabotti.Weapon.ProjectileCollision = VahingoitaPelaajaa;
Add(Kelabotti);
......@@ -256,16 +260,43 @@ namespace KelaCombatTesti;
seuraajanAivot.Speed = 100;
Kelabotti.Brain = seuraajanAivot;
Timer heittoajastin = new Timer();
heittoajastin.Interval = 2;
heittoajastin.Timeout += delegate() { KelabotinAmmus(Kelabotti, "pelaaja"); };
heittoajastin.Start();
// Destroyed-tapahtuma Jypelissä:
// https://tim.jyu.fi/view/kurssit/jypeli/tapahtumat/muuttapahtumat
Kelabotti.Destroyed += heittoajastin.Stop;
}
/// <summary>
/// Aliohjelma, jossa käsitellään Kelabotin heittämä ammus
/// </summary>
/// <param name="heittavaOlio">Kelabotti heittää ammuksen</param>
/// <param name="kohdeolionTunniste">pelaajan tunniste</param>
public void KelabotinAmmus(PhysicsObject heittavaOlio, string kohdeolionTunniste)
{
PhysicsObject kappale = new PhysicsObject(15, 15, Shape.Circle);
//kappale.Hit(new Vector(180,80));
kappale.Hit(new Vector());
kappale.Position = heittavaOlio.Position;
kappale.CollisionIgnoreGroup = 3;
kappale.Color = Color.Silver;
kappale.Tag = "kappale";
kappale.MaximumLifetime = TimeSpan.FromSeconds(8);
Add(kappale);
}
/// <summary>
/// Tämä aliohjelma käsittlee sen, kun pelaaja osuu Kelabottiin
/// </summary>
/// <param name="pelaaja">pelaajahahmo</param>
/// <param name="Kelabotti">pelin vihu; Kelabotti</param>
void VahingoitaPelaajaa(PhysicsObject pelaaja, PhysicsObject Kelabotti)
void VahingoitaPelaajaa(PhysicsObject pelaaja, PhysicsObject kappale)
{
int luku = RandomGen.NextInt(19, 34);
pelaajanelamaLaskuri.Value = pelaajanelamaLaskuri - luku; // Vähentää pelaajan elämää satunnaisen määrän
......
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