Skip to content
Snippets Groups Projects
Commit 95455c59 authored by Nilla Magga's avatar Nilla Magga
Browse files

Lisätty taulukko peliin

parent db374041
No related branches found
No related tags found
No related merge requests found
using Jypeli;
using Jypeli.Assets;
using Jypeli.Controls;
using Jypeli.Effects;
using Jypeli.Widgets;
using System;
using System.Collections.Generic;
using System.Diagnostics.Metrics;
using System.Text;
namespace Surffipeli
{
/// @author Nilla Magga
/// @version 31.05.2024
/// <summary>
/// Surffipeli jossa tarkotuksena kerätä mahdollisimmaan paljon aaltoja
/// ja varoa seiniä sekä kiviä
/// </summary>
///
public class Surffipeli : PhysicsGame
{
private const double NOPEUS = 10000;
......@@ -22,11 +29,14 @@ namespace Surffipeli
private PlatformCharacter pelaaja1;
private Image pelaajanKuva = LoadImage("surffilauta.png");
private Image aaltoKuva = LoadImage("aalto.png");
private Image kiviKuva = LoadImage("kivi.png");
private Image pelaajanKuolemakuva = LoadImage("surffilautaKatki.png");
private char[] merkitys = { '#','k','*','N' };
private SoundEffect maaliAani = LoadSoundEffect("maali.wav");
private SoundEffect tormaysAani = LoadSoundEffect("maali.wav");
......@@ -37,12 +47,14 @@ namespace Surffipeli
public IntMeter pisteLaskuri;
public Timer aikalaskuri;
public override void Begin()
{
ClearAll();
SetWindowSize(1280, 720);
Gravity = new Vector(0, -100);
LuoKentta();
LisaaNappaimet();
......@@ -68,11 +80,15 @@ namespace Surffipeli
{
pelaaja1.Push(new Vector(NOPEUS, 0.0));
}
/// <summary>
/// Luodaan pistelaskuri aalloista saatuja pisteitä varten
/// Asetataan se oikeaan yläkulmaan ja tehdään sille palkki joka muuttuu pisteiden mukaisesti punaiseksi
/// Asetetaan pelille maksimipistemäärä
/// </summary>
///
private void LuoPistelaskuri()
{
pisteLaskuri = new IntMeter(0);
......@@ -100,6 +116,7 @@ namespace Surffipeli
pistePalkki.BorderColor = Color.Red;
Add(pistePalkki);
/// <summary>
/// Lisää tekstin "VOITTO" ja pysäyttää pelin kun pelaaja saavuttaa maksimipistemäärän
/// </summary>
......@@ -141,9 +158,8 @@ namespace Surffipeli
aika.X = Screen.Left + 200;
aika.TextColor = Color.White;
Add(aika);
}
/// <summary>
/// Aikalaskuri, jolla peli saadaan käynnistymään 5s päästä uudestaan voiton jälkeen
/// </summary>
......@@ -168,6 +184,7 @@ namespace Surffipeli
Add(voittoAika);
}
/// <summary>
/// Aikalaskuri, jolla peli saadaan käynnistymään 5s päästä uudestaan häviön jälkeen
/// </summary>
......@@ -198,16 +215,18 @@ namespace Surffipeli
ResetLayers();
Begin();
}
/// <summary>
/// Kentän luonti peliä varten
/// </summary>
private void LuoKentta()
{
TileMap kentta = TileMap.FromLevelAsset("kentta1.txt");
kentta.SetTileMethod('#', LisaaSeina);
kentta.SetTileMethod('k', LisaaKivi);
kentta.SetTileMethod('*', LisaaAalto);
kentta.SetTileMethod('N', LisaaPelaaja);
kentta.SetTileMethod(merkitys[0], LisaaSeina);
kentta.SetTileMethod(merkitys[1], LisaaKivi);
kentta.SetTileMethod(merkitys[2], LisaaAalto);
kentta.SetTileMethod(merkitys[3], LisaaPelaaja);
kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
Level.Background.CreateGradient(Color.White, Color.SkyBlue);
......@@ -217,6 +236,7 @@ namespace Surffipeli
PhysicsObject oikeaReuna = Level.CreateRightBorder();
oikeaReuna.Tag = "maali";
}
/// <summary>
/// Luodaan pelille seinät
/// </summary>
......@@ -231,6 +251,7 @@ namespace Surffipeli
seina.Tag = "seina";
Add(seina);
}
/// <summary>
/// Luodaan kenttään kiviä, joita pelaajan pitää väistää
/// </summary>
......@@ -243,8 +264,10 @@ namespace Surffipeli
kivi.Position = paikka;
kivi.Image = kiviKuva;
kivi.Tag = "kivi";
Add(kivi);
Add(kivi);
}
/// <summary>
/// Luodaan kenttään aaltoja, joita pelaajan tarkoitus kerätä
/// </summary>
......@@ -260,6 +283,7 @@ namespace Surffipeli
aalto.Tag = "aalto";
Add(aalto);
}
/// <summary>
/// Luodaan pelaaja ja määritetään sen törmäyskäsittelijät
/// </summary>
......@@ -278,6 +302,7 @@ namespace Surffipeli
AddCollisionHandler(pelaaja1, "maali", Maali);
Add(pelaaja1);
}
/// <summary>
/// Luodaan päätyseinästä objekti, jonka saavuttamalla kenttä päästään läpi
/// </summary>
......@@ -294,6 +319,7 @@ namespace Surffipeli
liikutusajastin.Stop();
}
/// <summary>
/// Lisätään näppäimet millä peliä hallitaan
/// </summary>
......@@ -315,6 +341,7 @@ namespace Surffipeli
{
hahmo.ForceJump(nopeus);
}
/// <summary>
/// Lisätään teksti "keräsit aallon" ja annetaan pistelaskuriin yksi lisäpiste
/// </summary>
......@@ -327,6 +354,7 @@ namespace Surffipeli
aalto.Destroy();
pisteLaskuri.Value += 1;
}
/// <summary>
/// Peli loppuu kun kiveen osutaan. Määritetään pelaajalle uusi kuva
/// </summary>
......@@ -350,6 +378,7 @@ namespace Surffipeli
Gravity = Vector.Zero;
}
}
/// <summary>
/// Lisätään teksti "Varo seiniä" kun pelaaja osuu ylä- tai alaseinään.
/// </summary>
......@@ -361,10 +390,12 @@ namespace Surffipeli
{
MessageDisplay.Add("Varo seiniä!");
pisteLaskuri.Value -= 1;
}
}
}
}
}
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