Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tie/ohj1/2023s/ohj1ht
  • ojkoykka/ohj1ht
  • lemaline/ohj-1-ht-leo
  • altuoles/ohj1ht
  • ajviitan/ohj1ht
  • esahakki/ohj1ht
  • olieemka/ohj1ht
  • keinkont/ohj1ht
  • jejojuha/ohj1ht
  • parmisee/sidotut-sielut
  • wkoskine/kolikkopeli
  • aimaasko/ohj1ht
  • rapalare/ohj1ht
  • arsepiip/ohj1ht
  • tuliat/ohj1ht
  • khlaine/ohj1ht
  • thesanos/map-harkka
  • taanlaak/ohj1ht
  • avkesti/ohj1ht
  • siniseyt/ohj1ht
  • vesal/ohj1hta
  • anhahyvo/ohj1ht
  • jcvehman/leppakerttu
  • kmjaaske/ohj1ht
  • aapiippu/ohj1ht
  • reelmann/ohj1ht
  • ijkurki/ohj1ht
  • ttkelaw/ohj1ht
  • koallaht/ohj1ht
  • vesal/ohj1ht3
  • pasaikon/ohj-1-ht
  • piipaisa/ohj1ht
  • hkoktany/ohj1ht
  • pamahete/ohj1ht
  • hvriikon/ohj1ht
  • uekolehm/ohj1ht
  • njsaari/ohj1ht
  • lampiemw/rallipeli
  • tkmeskan/ohj1ht
  • aurmirle/ohj1ht
  • grohju/ohj1ht
  • awsorri/ohj1ht
  • jamamokk/ohj1ht
  • sakksama/ohj1ht
  • levalaaa/ohj1ht
  • jpjturtu/ohj1ht
  • vvvkorhv/ohj1ht
  • torkalju/s2023ohj1ht
  • koskelju/ohj1ht
  • eimaki/ohj1ht
  • matuhakk/kauppakassi
  • ollvilhi/ohj1ht
  • nktuorin/ohj1ht
  • elpeviva/ohj1ht
  • kumpuvex/ohj-1-ht
  • mvpalola/ohj1ht
  • pasonnpe/ohj1ht
  • tornhale/ohj1ht
  • iljitesa/ohj1ht
  • ruusii/ohj1ht
  • javirjo/ohj1ht
  • katahe/ohj1ht
  • niktapli/ohj1ht
  • vaalanti/ohj1ht
  • eijuhokk/ohj1ht
  • ricroos/ohj1ht
  • jjmalizy/ohj1ht
  • kirskaxt/ohj1ht
  • haemhaat/ohj1ht
  • korhanjo/ohj1ht
  • runnjuta/ohj1ht
  • jueeasik/ddr-tetris
  • kojalewa/ohj1ht
  • vejokeso/ohj1ht
  • koskeltu/ohj1ht
  • eorhala/ohj1ht
  • kiukklju/ohj1ht
  • oneemasa/ohj1ht
  • kylmsama/ohj1ht
  • mikrkonk/ohj1ht
  • viikarma/ohj1ht
  • jesvilju/ohj1ht
  • viekataj/ohj1ht
  • eerikano/ohj1ht
  • vevejuha/ohj1ht
  • ekpakkal/ohj1ht
  • otjuahos/ohj1ht
  • rajanije/ohj1ht
  • rintahe/ohj1ht
  • mpaavola/ohj1ht
  • lalaajal/ohj1ht
  • tevesiku/ohj1ht
  • malmente/ohj1ht
  • lahdelai/ohj1ht
  • lehtlrvt/syksy-2023-project
  • tuilkark/ohj1ht
  • shurmeri/ohj1ht
  • npura/ohj1ht
  • ljkarna/ohj1ht
  • pejokarj/ohj1ht
  • hytosama/ohj1ht
  • arpevile/ohj1ht
  • tspuhari/ohj1ht
  • meematma/ohj1ht
  • msvekkel/ohj1ht
  • lskumpus/temppelirosvo
  • lskumpus/ohj1ht
  • parikkp/ohj1ht
  • oopummww/sahkonhintalaskuri
  • emjowebe/ohj1ht
  • esolin/ohj1ht
  • anjakinn/ohj1ht
  • eronenve/ohj1ht
  • kautuoee/sijottajat
  • ammarttu/seikkailupeli
  • jhkortww/ohj1ht
  • tiainela/ohj1ht
  • lajoraiv/avaruushyokkaajat
  • vjkoski/ohj1ht
  • limmakyn/ohj1ht
  • kreenk/ohj1ht
  • tynnijtt/ohj1ht
  • jovesaar/ohj1ht
  • jmsutizy/ohj-1-harjoitustyo
  • veijantt/asteroidpossu
  • krseppen/ohj1ht
  • sjlihava/ohj1ht
  • kmpaanan/ohj1ht
  • emelmann/ohj1ht
  • sasavoli/jaatelokesa
  • alarojal/take-them-all
  • huhtjyil/pysakointisimulaattori
  • ttaho/ohj1ht
  • koivulmi/omenat
  • tosajaas/ohj1ht
  • sievanee/ohj1ht
  • vavavima/ohj1ht
  • adjotuhk/ohj1ht
  • heijoshe/ohj1ht
  • sammakko/kohti-aaretonta
  • anneveka/kohti-aaretonta
  • piippoje/lentokonepeli
  • emalmale/frog-jump
  • niemlexy/ohj1ht
  • jasajuyl/ohj1ht
  • peoswasa/pirtin-puolustus
  • mzitting/ohj1ht
  • heikkiaa/ohj1ht
  • mattarma/ohj-1-ht
  • kiiskiev/ohj1ht
  • noelleht/ohj1ht
  • vtsarkka/ohj1ht
  • majuvaaj/ohj-1-ht
  • eiekuiri/ohj1ht2
  • moilanii/ohj1ht
  • jpmoilan/ohj1ht
  • lipavaxy/lipavaxy
  • varauhal/ohj1ht
  • seastrom/ohj1ht3
  • jlinnik/metsakissa
  • mipeolli/ohj1ht
  • majugroh/ohj1ht
  • aijaeeus/ohj1ht
  • anjopitk/ohj1ht
  • ulentika/ohj1ht
  • paajooni/ohj1ht
  • avfresta/ohj-1-harjoitustyo-peli
  • jueesark/ohj1ht
  • sulasaal/ohj1ht
  • tervomhj/ohj1ht
  • pelkkezz/ohj1ht
  • otjalouk/hoylaajanpaluu
  • jupeupol/ohj1ht
  • jojuhemu/ilmailusaatiedotus
  • karnlazy/ohj1ht
  • tornbeev/eetu-t-ht
  • makelkjt/ohj1ht
  • masakoiv/ohj1ht
  • jerantat/ohj1ht
  • reevirta/ohj1ht
  • junijuku/ohj1ht
  • oaaltola/ohj1ht
  • renmikta/ohj1ht
  • kuntekys/ohj1ht
  • emhaauha/ohj1ht
  • lijovest/ohj1ht
  • sjuskivs/ohj1ht
  • joohirvo/ohj1ht
  • rekallio/ohj1ht
  • tuzuneru/ohj1ht
  • jacheryy/vapaa-maailma-ht
  • salompxs/ohj1ht
  • vamavatu/peliprojekti
  • mikalese/project-color
  • vimimalu/ohj1ht
  • vehartzz/ohj1ht
  • anlutuho/vilsun-seikkailu
  • saadmikk/ohj-1-ht-2
  • topevoud/ohj1ht
  • mvhonkzz/kana-kana
  • kopperp/ohj1ht
  • jutalapp/ohj1ht
  • jejajoko/ohj1ht
  • suholaju/Webbi
  • askuisyy/ohj1ht
  • samjaajo/ohj1ht
  • penttu/ohj1ht
  • ekkoykka/ohj1ht
  • tamakark/ohj1ht
  • ckbboman/ohj1ht
  • jomuhaat/ohj-1-ht
  • tslahtin/ohj1ht
  • salmatel/ohj1ht
  • linnahee/pelastapeikoilta
  • pirhonmx/ohj1ht
  • perkem/ohj1ht
  • ssniinim/ohj-1-ht
  • nikaleko/ajope
  • heijohra/ohj1ht
  • kaikkoju/ohj1ht
  • rekanyys/ohj1ht
  • nijomagg/ohj1ht
  • solismpa/ohj1ht
  • enhekorp/ohj1ht
  • myahsumy/h-tohj-1
  • nynalynn/ohj1ht
  • iitojopi/ohj1ht
  • harmjosa/ohj1ht
  • joalsaun/ohj-1-ht
  • jimsebna/ohj1ht
  • jcmbergg/ohj1ht
  • vemaveij/ohj-1-ht
232 results
Show changes
Commits on Source (12)
Showing
with 570 additions and 0 deletions
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/projectSettingsUpdater.xml
/contentModel.xml
/modules.xml
/.idea.Harjoitustyö.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lentokonepeli", "Lentokonepeli\Lentokonepeli.csproj", "{184E3BEF-3182-4A28-AE1C-1E7484A1108F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{184E3BEF-3182-4A28-AE1C-1E7484A1108F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{184E3BEF-3182-4A28-AE1C-1E7484A1108F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{184E3BEF-3182-4A28-AE1C-1E7484A1108F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{184E3BEF-3182-4A28-AE1C-1E7484A1108F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
Harjoitustyö/Lentokonepeli/Content/bullet.png

30.9 KiB

File added
##################################################################################################################################
..........#####.######..R...####.##########....#################################..........####.##########....#########.....######.
...........###...####.......###....#######.......###.#######.###############..........R...###....#######.......###.###......####..
............#.....###.......##..R...#####..R......#...#####...#############....####.......##..R...#####..R......#...##.......##...
.........R.........#........#........####..............###...R......#####.R..#####........#........###..........V....#.....R......
.L............V....#........#.........##.......#..R....##............###...##########...............#........#.......#............
............#......#..R.#.......#...R.#......####......#....######........#############.......#.....#.......###......#....#####...
...........###.........###..R..##.....#.....######.......V..#########...################..R..##.....#.......####..........#####...
..........#####...R....###.....###.....R..#########........#####################################.....R.....######.........#####...
##################################################################################################################################
Harjoitustyö/Lentokonepeli/Content/lataa.jpg

2.85 KiB

Harjoitustyö/Lentokonepeli/Content/lentokone.png

755 KiB

Harjoitustyö/Lentokonepeli/Content/lokki.png

59.8 KiB

File added
Harjoitustyö/Lentokonepeli/Content/pommi.png

90.4 KiB

Harjoitustyö/Lentokonepeli/Content/raha.jpg

51.4 KiB

using System;
using System.Collections.Generic;
using Jypeli;
using Jypeli.Assets;
using Jypeli.Controls;
using Jypeli.Widgets;
namespace Lentokonepeli;
/// @author Jere Piippo
/// @version 19.10.2023
/// <summary>
/// Lentokonepeli, jossa tulee selvitä kallioiden osumista ja lokeista
/// </summary>
public class Lentokonepeli : PhysicsGame
{
private const double NOPEUS = 50;
private const double NOUSUNOPEUS = 750;
private const int RUUDUN_KOKO = 40;
private Dictionary<PhysicsObject, int> vihollistenOsumat = new Dictionary<PhysicsObject, int>();
private PlatformCharacter pelaaja1;
private static readonly Image pelaajanKuva = LoadImage("lentokone.png");
private static readonly Image luoti = LoadImage("bullet.png");
private static readonly Image vihuKuva = LoadImage("lokki.png");
private static readonly Image rahaKuva = LoadImage("raha.jpg");
private Timer liikutusajastin;
private bool peliKaynnissa = false;
private static readonly SoundEffect rahaaAani = LoadSoundEffect("kassa.wav");
IntMeter pisteLaskuri;
/// <summary>
/// Ohjelman aloitus
/// </summary>
public override void Begin()
{
Gravity = new Vector(0, 0);
LuoKentta();
LisaaNappaimet();
Camera.Follow(pelaaja1);
Camera.ZoomFactor = 1.2;
Camera.StayInLevel = true;
MasterVolume = 0.5;
MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
"Aloita peli", "Lopeta");
Add(alkuValikko);
alkuValikko.AddItemHandler(0, AloitaPeli);
alkuValikko.AddItemHandler(1, Exit);
alkuValikko.DefaultCancel = 2;
liikutusajastin = new Timer();
liikutusajastin.Interval = 0.01;
liikutusajastin.Start();
}
/// <summary>
/// Luodaan uusi peli
/// </summary>
public void AloitaPeli()
{
ClearAll();
Gravity = new Vector(0, 0);
LuoKentta();
LisaaNappaimet();
Camera.Follow(pelaaja1);
Camera.ZoomFactor = 1.2;
Camera.StayInLevel = true;
MasterVolume = 0.5;
Timer liikutusajastin = new Timer();
liikutusajastin.Interval = 0.01;
liikutusajastin.Start();
LuoPistelaskuri();
}
/// <summary>
/// Pistelaskuri joka laskee rahankeruun
/// </summary>
public void LuoPistelaskuri()
{
pisteLaskuri = new IntMeter(0);
Label pisteNaytto = new Label();
pisteNaytto.X = Screen.Left + 100;
pisteNaytto.Y = Screen.Top - 100;
pisteNaytto.TextColor = Color.Black;
pisteNaytto.Color = Color.White;
pisteNaytto.Title = "Rahaa: ";
pisteNaytto.BindTo(pisteLaskuri);
Add(pisteNaytto);
}
/// <summary>
/// päivittää pelin tilaa jotta pelaajahahmo liikkuu annetulla nopeudella.
/// </summary>
protected override void Update(Time time)
{
base.Update(time);
Liikuta(pelaaja1, NOPEUS);
}
/// <summary>
/// Luodaan kenttä
/// </summary>
private void LuoKentta()
{
TileMap kentta = TileMap.FromLevelAsset("kentta1.txt");
kentta.SetTileMethod('#', LisaaTaso);
kentta.SetTileMethod('L', LisaaPelaaja);
kentta.SetTileMethod('V', LisaaVihollinen);
kentta.SetTileMethod('R', LisaaRaha);
kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
Level.CreateTopBorder();
Level.CreateBottomBorder();
Level.CreateLeftBorder();
PhysicsObject oikeaReuna = Level.CreateRightBorder();
oikeaReuna.Tag = "oikea";
Level.Background.CreateGradient(Color.White, Color.SkyBlue);
}
/// <summary>
/// Lisätään kerättävä raha
/// </summary>
/// <param name="paikka"> rahan sijainti</param>
/// <param name="leveys"> rahan leveys tasossa</param>
/// <param name="korkeus"> rahan korkeus tasossa</param>
private void LisaaRaha(Vector paikka, double leveys, double korkeus)
{
PhysicsObject raha = PhysicsObject.CreateStaticObject(width:15, 10);
raha.IgnoresCollisionResponse = true;
raha.Position = paikka;
raha.Image = rahaKuva;
raha.Tag = "raha";
Add(raha);
}
/// <summary>
/// Rekisteröi rahaan osumisen ja lisää sen pistelaskuriin
/// </summary>
/// <param name="hahmo"> mikä törmää</param>
/// <param name="raha"> mihin törmätään</param>
private void TormaaRahaan(PhysicsObject hahmo, PhysicsObject raha)
{
rahaaAani.Play();
MessageDisplay.Add("+100€");
pisteLaskuri.Value += 100;
raha.Destroy();
}
/// <summary>
/// Luo vihollisen
/// </summary>
/// <param name="paikka"> vihollisen sijainti</param>
/// <param name="leveys"> vihollisen leveys tasossa</param>
/// <param name="korkeus"> vihollisen korkeus tasossa</param>
private void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
{
PhysicsObject vihollinen = new PhysicsObject(35, height: 25);
vihollinen.Position = paikka;
vihollinen.Image = vihuKuva;
vihollinen.Tag = "vihu";
vihollinen.CanRotate = false;
vihollinen.IgnoresGravity = true;
vihollinen.IgnoresCollisionResponse = true;
Add(vihollinen);
vihollistenOsumat[vihollinen] = 0;
}
/// <summary>
/// Laskee pelaajan ampumat osumat viholliseen
/// </summary>
private void TarkistaVihollistenOsumat()
{
List<PhysicsObject> tuhotutViholliset = new List<PhysicsObject>();
foreach (var vihollinen in vihollistenOsumat.Keys)
{
if (vihollinen.IsDestroyed)
{
tuhotutViholliset.Add(vihollinen);
continue;
}
if (vihollistenOsumat[vihollinen] >= 5)
{
VihollisenRajahdys(vihollinen.Position);
tuhotutViholliset.Add(vihollinen);
}
}
foreach (var tuhoutunutVihollinen in tuhotutViholliset)
{
vihollistenOsumat.Remove(tuhoutunutVihollinen);
}
}
/// <summary>
/// Lisätään "vuoristot", joita väistellään
/// </summary>
/// <param name="paikka"> tason sijainti</param>
/// <param name="leveys"> tason leveys tasossa</param>
/// <param name="korkeus"> tason korkeus tasossa</param>
private void LisaaTaso(Vector paikka, double leveys, double korkeus)
{
PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
taso.Position = paikka;
taso.Color = Color.Green;
taso.Tag = "seina";
Add(taso);
}
/// <summary>
/// Rajahdysefekti kun lentokone törmää
/// </summary>
/// <param name="objekti"> asia joka räjähtää</param>
private void RajahtavaObjektiRajahdys(PhysicsObject objekti)
{
Explosion rajahdys = new Explosion(100);
rajahdys.Position = objekti.Position;
Add(rajahdys);
}
/// <summary>
/// Luodaan pelaaja
/// </summary>
/// <param name="paikka"> pelaajan sijainti</param>
/// <param name="leveys"> pelaajan leveys tasossa</param>
/// <param name="korkeus"> pelaajan korkeus tasossa</param>
private void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
{
pelaaja1 = new PlatformCharacter(40, 20);
pelaaja1.Position = paikka;
pelaaja1.Mass = 4.0;
pelaaja1.Image = pelaajanKuva;
AddCollisionHandler(pelaaja1, "seina", Tormays);
AddCollisionHandler(pelaaja1, "seina", TormaaKuolettavaan);
AddCollisionHandler(pelaaja1, "vihu", TormaaKuolettavaan);
AddCollisionHandler(pelaaja1, "vihu", Tormays);
AddCollisionHandler(pelaaja1, "oikea", TormaaOikeaanReunaan);
AddCollisionHandler(pelaaja1, "raha", TormaaRahaan);
pelaaja1.Weapon = new AssaultRifle(0, 0);
pelaaja1.Weapon.Ammo.Value = 1000;
pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
Add(pelaaja1);
}
/// <summary>
/// Pelaajan törmätessä keskeytetään peli
/// </summary>
/// <param name="tormaaja"> kuka törmää</param>
/// <param name="kohde"> mihin törmätään</param>
public void TormaaKuolettavaan(PhysicsObject tormaaja, PhysicsObject kohde)
{
if (peliKaynnissa)
{
MessageDisplay.Add("Kuolit! :(");
PoistaPelaamisnappaimet();
peliKaynnissa = false;
liikutusajastin.Stop();
uusiValikko();
}
}
/// <summary>
/// Rekisteröi pelaajan ampumat ammus osumat
/// </summary>
/// <param name="ammus"> pelaajan ampuma ammus</param>
/// <param name="kohde"> ampumisen kohde ottaa osumat</param>
public void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
{
ammus.Destroy(); // Tuhoa ammus
if (kohde.Tag == "vihu" && !kohde.IsDestroyed)
{
vihollistenOsumat[kohde]++; // Päivitä osumatieto, jos vihollinen ei ole tuhottu
if (vihollistenOsumat[kohde] >= 5)
{
VihollisenRajahdys(kohde.Position);
kohde.Destroy(); // Tuhoa vihollinen
vihollistenOsumat.Remove(kohde); // Poista vihollinen osumatiedoista
}
}
}
/// <summary>
/// Luo rajahdysefektin kun vihollinen tuhoutuu
/// </summary>
/// <param name="paikka">rajahdyksen sijainti</param>
private void VihollisenRajahdys(Vector paikka)
{
Explosion rajahdys = new Explosion(100);
rajahdys.Position = paikka;
Add(rajahdys);
}
/// <summary>
/// Pelaajan törmätessä viholliseen
/// </summary>
/// <param name="tormaaja"> kuka törmää</param>
/// <param name="kohde"> mihin törmätään</param>
public void Tormays(PhysicsObject tormaaja, PhysicsObject kohde)
{
if (kohde.Tag == "seina" || kohde.Tag == "vihu")
{
MessageDisplay.Add("Kuolit! :(");
if (kohde.Tag == "vihu")
{
VihollisenRajahdys(kohde.Position);
kohde.Destroy(); // Tuhoa vihollinen
vihollistenOsumat.Remove(kohde); // Poista vihollinen osumatiedoista
}
pelaaja1.Destroy(); // Tuhoa pelaaja1
kohde.Destroy(); // Tuhoa vihollinen tai seinä
peliKaynnissa = false;
RajahtavaObjektiRajahdys(pelaaja1); // Luo pelaaja1:n räjähdys
uusiValikko();
}
}
/// <summary>
/// Luodaan valikko, josta voidaan aloittaa uusipeli
/// </summary>
public void uusiValikko()
{
MultiSelectWindow alkuValikko = new MultiSelectWindow("Hävisit..",
"Uusi peli", "Lopeta");
Add(alkuValikko);
alkuValikko.AddItemHandler(0, AloitaPeli);
alkuValikko.AddItemHandler(1, Exit);
alkuValikko.DefaultCancel = 2;
}
/// <summary>
/// Triggeri kun päästään maaliin
/// </summary>
/// <param name="tormaaja"> kuka törmää</param>
/// <param name="kohde"> mihin törmätään</param>
public void TormaaOikeaanReunaan(PhysicsObject tormaaja, PhysicsObject kohde)
{
MessageDisplay.Add("Pääsit kentän läpi!");
Gravity = Vector.Zero; // Pelaaja ei enää putoa alas
StopAll();
MultiSelectWindow alkuValikko = new MultiSelectWindow("Onneksi olkoon voitit!",
"Uusi peli", "Lopeta");
Add(alkuValikko);
alkuValikko.AddItemHandler(0, AloitaPeli);
alkuValikko.AddItemHandler(1, Exit);
alkuValikko.DefaultCancel = 2;
}
/// <summary>
/// Luodaan ohjausnäppäimet
/// </summary>
private void LisaaNappaimet()
{
Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
Keyboard.Listen(Key.Down, ButtonState.Down, liikeAlas, "Pelaaja hyppää");
Keyboard.Listen(Key.Up, ButtonState.Down, Liike, "Pelaaja hyppää");
Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
}
/// <summary>
/// Luodaan aseen specsit
/// </summary>
/// <param name="pelaaja"> hahmo joka pystyy aseella ampumaan</param>
public void AmmuAseella(PlatformCharacter pelaaja)
{
PhysicsObject ammus = pelaaja.Weapon.Shoot();
if (ammus != null)
{
ammus.Size *= 0.3;
ammus.Image = luoti;
ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
AddCollisionHandler(ammus, "vihu", AmmusOsui);
TarkistaVihollistenOsumat();
}
}
/// <summary>
/// Liikuttaa pelaajaa eteenpäib
/// </summary>
/// <param name="hahmo"> hahmo jota pelaaja ohjaa</param>
/// <param name="nopeus"> automaattinen nopeus jonka pelaaja kulkee </param>
private void Liikuta(PlatformCharacter hahmo, double nopeus)
{
hahmo.Walk(nopeus);
}
/// <summary>
/// Luo liike alaspäin
/// </summary>
private void liikeAlas()
{
pelaaja1.ForceJump(speed: -10);
}
/// <summary>
/// Luodaa liike ylöspäin
/// </summary>
private void Liike()
{
pelaaja1.ForceJump(10);
}
/// <summary>
/// Poistaa näppäimet käytöstä
/// </summary>
private void PoistaPelaamisnappaimet()
{
Keyboard.Disable(Key.Up);
Keyboard.Disable(Key.Down);
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jypeli.NET" Version="11.*"/>
<PackageReference Include="Jypeli.FarseerPhysics.NET" Version="2.*"/>
</ItemGroup>
<ItemGroup>
<None Update="Content\kentta1.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Content\maali.wav">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Content\bullet.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\lataa.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\pommi.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\raha.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\kassa.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\lokki.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\lentokone.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace Lentokonepeli
{
/// <summary>
/// The main class.
/// </summary>
public static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
using var game = new Lentokonepeli();
game.Run();
}
}
}
\ No newline at end of file
suunnitelma/esimerkkikuva.png

9.92 KiB

suunnitelma/lentokonepeli_kuvitus.png

43.2 KiB