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
  • jupesate/ohj1ht
  • rokapark/ohj-1-ht-testi
  • VesaLappalainenTesti/ohj1ht
  • taholtta/itkp-102-harjoitustyo
  • jriihine/kalapeli
  • skananen/ohj1ht
  • hakokakr/ohj1ht
  • vesal/ohj1htsaa
  • jvppakar/ohj-1-ht-harjoitustyo
  • ptuomola/ohj1ht
  • tie/ohj1/2022s/ohj1ht
  • samsaast/ohj1ht
  • tojosuut/ohj1ht
  • pepihlaj/ohj1ht
  • nikrantt/kickem
  • tejumeri/ohj1ht
  • juvonevi/ohj1ht
  • olrutane/ohj1ht
  • kalakoiv/ohj1ht
  • hytovjxz/ohj-1-httestaus
  • jeismont/jeismont-ht
  • jemaantt/crazycoach
  • saloso/ohj-1-ht
  • ikonenja/ohj1ht
  • stlapell/ohj1ht
  • eehejosa/ohj1ht
  • juauolli/ohj-1-ht
  • vevajoki/vinka-trainer-2
  • jcvehman/ohj1ht
  • jbpalola/mollon-kuskaus
  • alanenee/ohj1ht
  • niememan/ohj1ht
  • jutakoir/ohj1ht
  • nmmerima/ohj1ht
  • reklinlu/ohj1ht
  • vesal/kolmionmetsastys
  • toilmark/ohj1ht
  • khakarpp/ohj1ht
  • pesajylh/ohj1ht
  • osterava/ohj1ht
  • laidmale/ohj1ht
  • lapahama/ohj1ht
  • pesoalto/ohj1ht
  • rapkyla/rapkyla-ht
  • korjonem/ohj1ht
  • vvkolsi/ohj1ht
  • iinelipi/ohj1ht
  • vemakael/ohj1ht
  • jarjesjo/ohj1ht
  • hellnije/ohj1ht
  • jaalsiik/ohj1ht
  • meamalxv/ohj1ht
  • esbrunil/ohj1ht
  • aaptappe/ohj1ht
  • karkhkxy/ohj1ht
  • ltahonex/ohj1ht
  • wahlsyy/ohj-1-ht-sw
  • aohuotau/aohuotau
  • latpaaja/ohj1ht
  • mslaurin/ohj1ht
  • mnjtiili/ohj1ht
  • vewaheik/riski-mexico
  • forsheal/harkkatyo
  • askallio/ohj1ht
  • jptissuu/matriisijuttuja
  • piipjuhe/harjoitustyo
  • teanmeri/mattikukkarossa
  • heoltaiv/ohj1ht
  • mtekola/dead-meat
  • romaasun/harjoitustyoohj-1
  • viselora/ohj1ht
  • topelukk/matopeli
  • inkilaka/ohj1ht
  • eekaposo/eekaposo
  • jiheikzt/ohj1ht
  • anrutane/sankarikatti-ja-ilkeat-rotat-avaruudessa
  • sammatma/ohj1ht
  • eealhakk/ohj1ht
  • suontjht/ohj1ht
  • amsaveni/ohj1ht
  • aojuntun/ohj1ht
  • nviianen/ohj1ht
  • tviiiado/vedenkerays
  • japarvia/ohj1ht
  • anuemiko/ohj1ht
  • enemkuus/ohj1ht
  • savolpet/ohj1ht
  • heaupynn/tasohyppelyahelmi
  • rutankmy/ohj1ht
  • pmruusu/ohj1ht
  • rajavlvu/ohj1ht
  • viraleil/ohj1ht
  • jhthorxu/ohj1ht
  • aevesala/ohj1ht
  • kaupkama/pallon-puhkominen
  • franyber/ohj1ht
  • jukkalje/harjoitustyo
  • vesaloko/ohj1ht
  • ojanenjj/ohj1ht
  • mmjtuomi/ohj1ht
  • elemiron/ohjelmointi-1-harkkatyo
  • laemhann/ohj-1-ht
  • poiknisa/ohj1ht
  • peolkyll/ohj1ht
  • thmustap/ohj1ht
  • kiruuhil/tasohyppelykiiia
  • jashokuu/jashokuu-ohj-1-ht
  • tjkajant/ohj1ht
  • milmarki/ohj1ht
  • jaaktaee/ohj1ht
  • teanmeri/mattikukkarossa-v-2
  • aatarant/ohj1ht
  • enlejuhe/ohj1ht
  • kkautio/ohj1ht
  • haggpoo/ohj1ht
  • sarbackm/ohj1ht
  • jsmakkov/jetpack-hellride
  • tusakki/tasohyppely-ht
  • helatukk/ohj1ht
  • savomaaa/ohj1ht
  • aiempolt/ohj1ht
  • rooruoho/ohj1ht
  • partsatv/ohjelmointi-1-ht
  • anidinri/vauvapeli
  • mosaluht/sudoku
  • kupialnx/ohj1ht
  • lasilven/ohj1ht
  • erkkjjyv/snack-attack
  • avsipila/ohj1ht
  • laakjuaa/ohj1ht
  • venmaamo/ohj1ht
  • kotomjyv/ohj1ht
  • nurvalmi/ohj1ht
  • alninybe/vesipisarat
  • huttuvjy/ohj-1-ht
  • onhuhtal/ohj1ht
  • snelvjxz/ohj1ht
  • isonial/ohj1ht
  • junttiee/ohj1ht
  • kaiadesa/ohj1ht
  • leokumpu/koirapeli
  • nianjoha/ohj1ht
  • msnhyyti/ohj1ht
  • joohieta/ohj1ht
  • tomanuoj/ohj1ht
  • myyryejk/ohj1ht
  • lpjsilve/ohj1ht
  • alekylli/ohj1ht
  • maalleht/ohj1ht
  • korhosax/ohj1ht
  • lihavavy/ohj1ht
  • rylitalo/ohj1ht
  • jaakkoju/ohj1ht
  • sejolkko/ohj1ht
  • savevalo/ohj1ht
  • ntkumpul/ohj-1-ht
  • jmsalkio/ohj1ht
  • mahojoha/ohj1ht
  • evaltaiv/ohj-1-ht
  • niielmky/ohj1ht
  • hasultxt/ohj1ht
  • mkmannit/harkkatyopeli
  • nasakelo/miau
  • peukteni/ohj1ht
  • kempvimi/ohj1ht
  • mearauha/ohj1ht
  • juvevent/ohj1ht
  • saarian/ohj1ht
  • mielarju/ohj1ht
  • saheikkx/ohj1ht
  • kallmovu/ohj1ht
  • mielioex/mielioex
  • eatuomuz/peli
  • aasahonk/ohj1ht
  • elaaantt/ohj1ht
  • jutokall/ohj1ht
  • matahalo/ohj1ht
  • joakrihu/avaruusseikkailu
  • kettueax/ohj1ht
  • maospelt/ohj1ht
  • jvvoutil/ohj-1-ht-2
  • hjeltisy/ohj1ht
  • jppaasww/ohj1ht
  • tiainetv/ohj1ht
  • karjsaev/ohj1ht
  • amigam/ohj1ht
  • toanjaas/ohj1ht
  • jaeianro/ohj1ht
  • jetuovin/ohj1ht
  • mijuhage/ohj1ht
  • blomerjo/ohj1ht
  • ojmannex/ohj1htsaa
  • malinett/harjoitustyo
  • krrekivi/ohj1ht
  • ltvertai/ohj1ht
  • mmminkyu/ohj-1-ht
  • lpkonnu/ohj1ht
  • hatahvan/ohj1ht
  • mmhaikal/ohj1ht
  • laiiharj/ohj1ht
  • tetakuos/ohj1ht
  • jontapka/ohj1ht
  • akpenikk/ohj1ht
  • ekojala/ohj1ht
  • almetsap/fruit-quest
  • maberyha/ohj1ht
  • tsysoe/ht-ts
  • juhyytin/ohj1htsaa
208 results
Show changes
Commits on Source (8)

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32825.248
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sammakkopeli", "Sammakkopeli\Sammakkopeli.csproj", "{089E442E-4A40-4DBF-8D92-AE510482B764}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{089E442E-4A40-4DBF-8D92-AE510482B764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{089E442E-4A40-4DBF-8D92-AE510482B764}.Debug|Any CPU.Build.0 = Debug|Any CPU
{089E442E-4A40-4DBF-8D92-AE510482B764}.Release|Any CPU.ActiveCfg = Release|Any CPU
{089E442E-4A40-4DBF-8D92-AE510482B764}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B9577520-187E-4D34-BB7D-9968BDEDBBEE}
EndGlobalSection
EndGlobal
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace Sammakkopeli
{
/// <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 Sammakkopeli();
game.Run();
}
}
}
using Jypeli;
using Jypeli.Assets;
using Jypeli.Controls;
using Jypeli.Widgets;
using System;
using System.Collections.Generic;
namespace Sammakkopeli
{
public class Sammakkopeli : PhysicsGame
{
Vector suunta;
PhysicsObject sammakko;
PhysicsObject kieli;
Timer hyppyLaskuri;
Timer tarkastaLiike;
Timer hyppyViive;
Timer kieliAjastin;
Timer liikutaKielta;
IntMeter karpasLaskuri;
int sammakkoTippuuKertoja = -10;
int edellinenSuunta = 1;
bool onkoHypannut = false;
bool ajastinKaynnissa = false;
bool liikutetaankoPelihahmoa = false;
bool kaytetaankoKielta = false;
double nopeusX = 0.0;
double nopeusY = -1000.0;
double nopeusKerroin = 1.0;
public override void Begin()
{
TeeAlkuValikko();
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
}
void TeeAlkuValikko()
{
ClearAll();
MultiSelectWindow alkuValikko = new MultiSelectWindow("Sammakkopeli",
"Valitse taso", "Ohjaimet", "Lopeta peli");
alkuValikko.AddItemHandler(0, TeeTasovalikko);
alkuValikko.AddItemHandler(1, ShowControlHelp);
alkuValikko.AddItemHandler(2, Exit);
alkuValikko.DefaultCancel = -1;
Add(alkuValikko);
}
void TeeValikko()
{
Pause();
MultiSelectWindow valikko = new MultiSelectWindow("Taukovalikko",
"Jatka peli", "Ohjaimet", "Takaisin alkuvalikkoon", "Lopeta peli");
valikko.ItemSelected += PainettiinValikonNappia;
Add(valikko);
}
void PainettiinValikonNappia(int valinta)
{
switch (valinta)
{
case 0:
Pause();
break;
case 1:
Pause();
ShowControlHelp();
break;
case 2:
TeeAlkuValikko();
break;
case 3:
Exit();
break;
}
}
void TeeTasovalikko()
{
MultiSelectWindow tasovalikko = new MultiSelectWindow("Valitse taso",
"Taso 1", "Taso 2", "Taso 3", "Takaisin");
tasovalikko.ItemSelected += PainettiinTasovalikonNappia;
Add(tasovalikko);
}
void PainettiinTasovalikonNappia(int valinta)
{
switch (valinta)
{
case 0:
AlustaKentta();
break;
case 1:
AlustaKentta();
break;
case 2:
AlustaKentta();
break;
case 3:
TeeAlkuValikko();
break;
}
}
/// <summary>
/// Asetetaan ohjaimet peli varten
/// </summary>
void AsetaOhjaimet()
{
Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liikuta pelihahmoa vasemmalle", -1);
Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaSammakko, null);
Keyboard.Listen(Key.Left, ButtonState.Pressed, MuutaSammakonKuvaa, null, -1);
Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liikuta pelihahmoa oikeallle", 1);
Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaSammakko, null);
Keyboard.Listen(Key.Right, ButtonState.Pressed, MuutaSammakonKuvaa, null, 1);
Keyboard.Listen(Key.Up, ButtonState.Pressed, SammakkoHyppaa, "Hypp", 8);
Keyboard.Listen(Key.Space, ButtonState.Pressed, KaytaKielta, "Kyt kielt");
Keyboard.Listen(Key.P, ButtonState.Pressed, TeeValikko, "Valikko");
}
/// <summary>
/// Mritetn pelihahmon nopeus
/// </summary>
/// <param name="suunta"></param>
void AsetaNopeus(int suunta)
{
liikutetaankoPelihahmoa = true;
if (onkoHypannut == true && sammakkoTippuuKertoja < 3)
{
nopeusX = suunta * nopeusKerroin * 300.0;
}
else nopeusX = 0.0;
if (ajastinKaynnissa == false && onkoHypannut == false)
{
ajastinKaynnissa = true;
hyppyViive.Start();
}
}
void MuutaSammakonKuvaa(int suunta)
{
if (suunta != edellinenSuunta)
{
sammakko.MirrorImage();
}
edellinenSuunta = suunta;
}
/// <summary>
/// Pysytt pelihahmon x-suunnassa
/// </summary>
void PysaytaSammakko()
{
nopeusX = 0.0;
liikutetaankoPelihahmoa = false;
}
/// <summary>
/// Luo peliin kentn ja alustaa pelin
/// </summary>
void AlustaKentta()
{
Level.BackgroundColor = Color.Aqua;
ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kentta1");
ruudut.SetTileMethod(Color.Gold, LuoTaso);
ruudut.SetTileMethod(Color.Red, LuoPelihahmo);
ruudut.SetTileMethod(Color.Orange, LuoHilleri);
ruudut.SetTileMethod(Color.Black, LuoKarpanen);
ruudut.Execute(40, 40);
Camera.Zoom(1.5);
Camera.Follow(sammakko);
LuoAjastimet();
LuoLaskurit();
AsetaMuuttujat();
AsetaOhjaimet();
}
void AsetaMuuttujat()
{
sammakkoTippuuKertoja = -10;
edellinenSuunta = 1;
onkoHypannut = false;
ajastinKaynnissa = false;
liikutetaankoPelihahmoa = false;
kaytetaankoKielta = false;
nopeusX = 0.0;
nopeusY = -1000.0;
nopeusKerroin = 1.0;
}
/// <summary>
/// Luo ajastimet pelihahmon liikuttamista varten
/// </summary>
void LuoAjastimet()
{
hyppyLaskuri = new Timer();
hyppyLaskuri.Interval = 0.05;
hyppyLaskuri.Timeout += SammakkoTippuu;
tarkastaLiike = new Timer();
tarkastaLiike.Interval = 0.05;
tarkastaLiike.Timeout += LiikutaPelihahmoa;
tarkastaLiike.Start();
liikutaKielta = new Timer();
liikutaKielta.Interval = 0.001;
liikutaKielta.Timeout += LiikutaKielta;
hyppyViive = new Timer();
hyppyViive.Interval = 0.17;
hyppyViive.Timeout += HyppyViive;
kieliAjastin = new Timer();
kieliAjastin.Interval = 0.80;
kieliAjastin.Timeout += PoistaKieli;
}
void LuoLaskurit()
{
karpasLaskuri = new IntMeter(0);
Label karpasNaytto = new Label();
karpasNaytto.Title = "Krpset: ";
karpasNaytto.X = Screen.Left + 100.0;
karpasNaytto.Y = Screen.Top - 100.0;
karpasNaytto.BindTo(karpasLaskuri);
Add(karpasNaytto);
}
void HyppyViive()
{
hyppyViive.Stop();
hyppyViive.Reset();
if (liikutetaankoPelihahmoa == true && onkoHypannut == false)
{
SammakkoHyppaa(3);
nopeusKerroin = 1.5;
}
ajastinKaynnissa = false;
}
/// <summary>
/// Luo pelihahmon
/// </summary>
/// <param name="paikka">piste, johon pelihahmo luodaan</param>
/// <param name="leveys">pelihahmon leveys</param>
/// <param name="korkeus">pelihahmon korkeus</param>
void LuoPelihahmo(Vector paikka, double leveys, double korkeus)
{
sammakko = new PhysicsObject(40.0, 26.0);
sammakko.Image = LoadImage("Sammakko.png");
sammakko.Position = paikka;
sammakko.CanRotate = false;
Add(sammakko);
AddCollisionHandler(sammakko, "palikka", KasitteleSammakonTormays);
}
/// <summary>
/// Liikuttaa pelihahmoa vasemmalle ja oikealle
/// </summary>
void LiikutaPelihahmoa()
{
suunta = new Vector(nopeusX, nopeusY);
sammakko.Velocity = suunta;
}
void LiikutaKielta()
{
kieli.Position = sammakko.Position
+ new Vector((sammakko.Width / 2 + kieli.Width / 2) * edellinenSuunta, 0);
}
/// <summary>
/// Hypytt pelihahmoa
/// </summary>
/// <param name="korkeus"></param>
void SammakkoHyppaa(int korkeus)
{
if (onkoHypannut == false)
{
onkoHypannut = true;
sammakkoTippuuKertoja = korkeus;
hyppyLaskuri.Start();
}
}
/// <summary>
/// asettaa pelihahmon tippumaan
/// </summary>
void SammakkoTippuu()
{
if (sammakkoTippuuKertoja < -9)
{
hyppyLaskuri.Stop();
hyppyLaskuri.Reset();
nopeusY = -1000.0;
return;
}
nopeusY = sammakkoTippuuKertoja * 100;
sammakkoTippuuKertoja -= 1;
}
void KaytaKielta()
{
if (kaytetaankoKielta == false)
{
kieli = new PhysicsObject(80, 10);
kieli.Shape = Shape.Rectangle;
kieli.Color = Color.Pink;
kieli.Tag = "kieli";
kieli.IgnoresCollisionResponse = true;
kieli.Velocity = sammakko.Velocity;
kieli.Position = sammakko.Position + new Vector((sammakko.Width / 2 + kieli.Width / 2) * edellinenSuunta, 0);
kieli.LifetimeLeft = TimeSpan.FromSeconds(0.45);
kaytetaankoKielta = true;
kieliAjastin.Start(1);
liikutaKielta.Start();
AddCollisionHandler(kieli, "karpanen", KasitteleKielenTormays);
Add(kieli);
}
}
void PoistaKieli()
{
kaytetaankoKielta = false;
kieliAjastin.Stop();
kieliAjastin.Reset();
liikutaKielta.Stop();
liikutaKielta.Reset();
}
void KasitteleSammakonTormays(PhysicsObject tormaaja, PhysicsObject kohde)
{
if (tormaaja.Bottom >= kohde.Top)
{
onkoHypannut = false;
nopeusKerroin = 1.0;
nopeusY = 0.0;
}
if (tormaaja.Top <= kohde.Bottom)
{
sammakkoTippuuKertoja = -1;
}
}
void KasitteleKielenTormays(PhysicsObject tormaaja, PhysicsObject kohde)
{
kohde.Destroy();
karpasLaskuri.Value += 1;
}
/// <summary>
/// Luo tason, jonka pll pelihahmo liikkuu
/// </summary>
/// <param name="paikka">piste, johon taso luodaan</param>
/// <param name="leveys">tason leveys</param>
/// <param name="korkeus">tason korkeus</param>
void LuoTaso(Vector paikka, double leveys, double korkeus)
{
PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
taso.Position = paikka;
taso.Shape = Shape.Rectangle;
taso.Color = Color.Orange;
taso.CollisionIgnoreGroup = 1;
taso.Tag = "palikka";
Add(taso);
}
/// <summary>
/// Luo peliin vihollisen
/// </summary>
/// <param name="paikka">piste, johon vihollinen luodaan</param>
/// <param name="leveys">vihollisen leveys</param>
/// <param name="korkeus">vihollisen korkeus</param>
void LuoHilleri(Vector paikka, double leveys, double korkeus)
{
PhysicsObject hilleri = new PhysicsObject(100, 70);
hilleri.IgnoresCollisionResponse = true;
hilleri.Position = paikka;
hilleri.Image = LoadImage("Hilleri.png");
Add(hilleri);
}
/// <summary>
/// Luo peliin kerttvn krpsen
/// </summary>
/// <param name="paikka"></param>
/// <param name="leveys"></param>
/// <param name="korkeus"></param>
void LuoKarpanen(Vector paikka, double leveys, double korkeus)
{
PhysicsObject karpanen = PhysicsObject.CreateStaticObject(leveys, korkeus);
karpanen.Position = paikka;
karpanen.Image = LoadImage("Karpane.png");
karpanen.IgnoresCollisionResponse = true;
karpanen.Tag = "karpanen";
Add(karpanen);
}
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<PublishReadyToRun>false</PublishReadyToRun>
<TieredCompilation>false</TieredCompilation>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jypeli.NET" Version="11.*" />
<PackageReference Include="Jypeli.FarseerPhysics.NET" Version="2.*" />
</ItemGroup>
<ItemGroup>
<None Update="content\Hilleri.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="content\Karpane.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="content\Kentta1.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="content\Sammakko.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Sammakkopeli/Sammakkopeli/content/Hilleri.png

1.74 KiB

Sammakkopeli/Sammakkopeli/content/Karpane.png

1.11 KiB

Sammakkopeli/Sammakkopeli/content/Kentta1.png

824 B

Sammakkopeli/Sammakkopeli/content/Sammakko.png

1.31 KiB

suunnitelma/esimerkkikuva.png

9.92 KiB

suunnitelma/sammakkopeli luonnos.png

91.7 KiB