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
  • elmotabe/ohj1ht
  • jotapark/ohj1ht
  • tanelira/ohj1ht
  • akrasa/ohj1ht
  • mimaahin/ohj1ht
  • oihietan/ohj1ht
  • tie/ohj1/2024s/ohj1ht
  • anpahypp/ohj1ht
  • saelripa/ohj1ht
  • mapepess/ohj1ht
  • eamaki/you-lost-the-game-the-game
  • yubablum/yubablum
  • roelsuom/roelsuom
  • askoleax/hakkaa-uudelleen
  • palolala/ohj-1-ht
  • jasyvays/ohj1ht
  • ruviljam/ohj1ht
  • jookettu/ohj1ht
  • vervarjo/ohj-1-ht
  • conrcsir/ohj1ht
  • otananti/ohj-1-ht
  • eerepo/ohj1ht
  • vieeaape/my-megis-1
  • uaopolso/ohj1ht
  • miltarva/Milja
  • huotta/ohj-1-ht
  • rrisiisk/ohj-1-ht
  • vesal/vesal5
  • saniitty/ohj1ht
  • setilus/ohj-1-ht
  • stniemel/stniemel
  • hirvepjw/ohj1ht
  • pjyypiix/ohj1ht
  • erpajala/ohj1ht
  • eerjanho/ohj1ht
  • saeteppo/ohj1ht
  • jutautri/ohj1ht
  • pjgenas/harkkatyop-g
  • juhsansa/juhsansa
  • pellrata/qmoduuli
  • mvaalata/ohj1ht
  • visamata/ohj1ht
  • rlokilja/ohj1ht
  • tuohmawi/ohj1ht
  • itsario/ohj-1-ht
  • koivishe/teekkarin-taival-2048
  • peillips/ohj1ht
  • nkeuren/ohj1ht
  • sasoleht/ohj1ht
  • jooantni/ohj1ht
  • kivistve/ohj1ht
  • rmrintal/ohj1ht
  • maimatsa/ohj1ht
  • hiltunma/ohj1ht
  • timovaan/ohj1ht
  • palaakho/numero-peli
  • loukovjv/ohj1ht
  • julipits/ohj1ht
  • haelkaja/ohj1ht
  • otjomatt/ohj-1-ht
  • jejalaht/ohj1ht
  • mamiparv/ohj1ht
  • akharine/ohj1ht
  • visevima/ohj1ht
  • rtmatilt/swatter
  • linvilan/ohj1ht
  • eppkarki/ohj1ht
  • maaivasi/ohj1ht
  • saveveka/saveveka
  • laitozz/ohj1ht
  • mietmiaa/ohj1ht
  • suominsh/tankkipeli
  • osalo/ohj1ht
  • jniskane/ohj1ht
  • jniskane/ohj-1-ht-2
  • jniskane/jniskane
  • kainumee/ohj1ht
  • helijave/ohj1ht
  • eemjorto/ohj1ht
  • nmpuskzv/nmpuskzv
  • laiadevi/ohj1ht
  • tochmart/ohj1ht
  • roijerve/bit-survivors
  • essmarpe/ohj1ht
  • eeeeoino/ohj1ht
  • rikretel/ohj1ht
  • anilnikk/ohj1ht
  • sivupehe/ohj1ht
  • torkhema/ohj1ht
  • vvlaspa/ohj1ht
  • apenttin/ohj1ht
  • ruotvive/ohj1ht
  • jemanare/ohj-1-ht-1
  • reponaw/ohj1ht
  • hjmhilli/hjmhilli
  • oapaaso/vads-sovellus
  • jaemvahu/ohj1ht
  • lajoveps/pallopeli
  • thalolri/ohj1ht
  • niemimm/ohj1ht
  • kagwochx/ohj1ht
  • kkvalke/ohj1ht
  • jormlsuu/pako-matka
  • kkmartik/harjoitustyo-ohj-1
  • lainejee/ohj1ht
  • taelbevi/ohj-1-ht
  • tornittu/ohj1ht
  • iiaumaoi/ohj1ht
  • ovevalka/pyramidin-purkaus
  • ltvertai/ohj-1-ht-kissan-sieniretki
  • leoksamu/ohj-1-ht-avaajosuskallat
  • ekhoalas/ohj1ht
  • saarakka/ohj1ht
  • rantajsu/rantajsu
  • jaetykky/ohj1ht
  • tyynakka/ohj1ht
  • kousaepw/ohj1ht
  • tiiliksi/ohj1ht
  • kokkaree/ohj1ht
  • halolpvz/ohj1ht
  • salonevs/ohj1ht
  • mohamoah/ohj1ht
  • vihavi/Vihavi
  • sisjeany/ohj1ht
  • kalopali/ohjelmointi-1-harjoitustyo
  • aabdi/ohj1ht
  • nsmietyt/ohj1ht
  • pslohi/ohj1ht
  • eenorta/ohj1ht
  • kantsiii/ohj1ht
  • aichinos/ohj1ht
  • elvihave/ohj1ht
  • tukilo/ohj1ht
  • vilvalka/ohj1ht
  • vehakkar/ohj1ht
  • savolave/ohj1ht
  • myhesare/ohj1ht
  • jutaalko/ohj1ht
  • auvijeka/ohj-1-ht
  • miankort/ohj1ht
  • ahtiansu/ohj1ht
  • rekolapi/rekolapi
  • oparve/ohj1ht
  • tuoskopp/ohj1ht
  • kylkii/ohj1ht
  • mkvuonos/ohj1ht
  • eeemkarv/ohj1ht
  • ojbhuota/ohj1ht
  • pohtojoj/vainylos
  • seaaemla/ohj1ht
  • kotajuka/ohj1ht
  • pmikaiko/ohj1ht
  • heajuvon/ohj1ht
  • mannmiar/ohj1ht
  • juriloaa/ohj1ht
  • emmamaki/e-makinen-tapio-ja-hiisi
  • pjheimon/ohj1ht
  • ahonenvi/ohj1ht
  • joamaxma/ohj1ht
  • lktkyllo/ohj1ht
  • pirinpot/ohj1ht
  • nisknmyy/ohj1ht
  • mmleppis/ohj1ht
  • elle/ohj1ht
  • alevilpa/ohj1ht
  • pitksouu/ohj1ht
  • jukakorp/ohj1ht
  • lesatuom/kaarmetyo
  • joolmatt/ohj1ht
  • lailvout/ohj1ht
  • pepartyy/ohj1ht
  • siwpentt/ohj-1-ht
  • limasjoh/ohj1ht
  • nurmsajo/ohj1ht
  • laleiho/ohj1ht
  • kojotarn/ohj1ht
  • matijazz/ohj1ht
  • tuomiluu/ohj1ht
  • vperkkol/ohj1ht
  • vepajuna/ohj1ht
  • smrautio/sokkelo
  • aajualal/harjoitustehtava-mage-survival
  • laaajoke/ohj1ht
  • tmgartow/ohj1ht
  • pdanilei/ohj1ht
  • kaipainm/kalastaja-kalevi
  • hietaolo/ohj1ht
  • inkemiah/skatemania
  • inkemiah/ohj-1-ht
  • puhavezz/puhavezz
  • truhtejo/ohj1ht
  • eoelehto/jumping-moose
  • sediiv/ohj1ht
  • akjuhesa/ohj1ht
  • sasalons/ohj1ht
  • valltoha/ohj-1-ht-blackjack
  • aajataip/ohj1ht
  • lamakany/ohj1ht
  • eepihote/ohj1ht
  • jaaseepe/ohj1ht
  • arpaanan/ohj1ht
  • vuorelma/ohj1ht
  • isojarto/ohj-1-ht
  • mtkarjal/ohj1ht
  • samavakk/ohj1ht
  • viininkr/jalkapallo-peli
  • elkortti/nyrkkeily
  • heautuom/ohj1ht
  • alimyy/tasohyppely
  • haloneot/ohj1ht
  • launon/ohj-1-ht
  • jemvirzy/kirjoitus-peli
  • miniospa/miniospa
  • aeheiska/apina-peli
  • saheikkx/ohj-1-htt
  • jalempel/ohj-1-ht
  • jujolaih/jump-guys
  • hejolesk/ohj1ht
  • akkasivu/ohj1ht
  • sajussin/ohj1ht
  • alhainai/ohj-1-ht
  • jamajuku/ohj1ht
  • eevharki/jalkapallopeli
  • annhenle/escape
  • kjsalova/ohj1ht
  • marjohku/ohj1ht
226 results
Show changes
Commits on Source (3)
Showing
with 445 additions and 0 deletions
<?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="RiderProjectSettingsUpdater">
<option name="singleClickDiffPreview" value="1" />
<option name="vcsConfiguration" value="3" />
</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" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoGeneratedRunConfigurationManager">
<projectFile>TippuKivet/TippuKivet.csproj</projectFile>
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="0ece420b-6c30-4076-bfb6-b7d5d926f6cf" name="Changes" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
</component>
<component name="ProblemsViewState">
<option name="selectedTabId" value="CurrentFile" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 4
}</component>
<component name="ProjectId" id="2ul5Xh6t4LXvV8I0yFwY1wP6QLU" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;.NET Project.TippuKivet.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;XThreadsFramesViewSplitterKey&quot;: &quot;0.88839287&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;preferences.lookFeel&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
}
}</component>
<component name="RunManager">
<configuration name="TippuKivet" type="DotNetProject" factoryName=".NET Project">
<option name="EXE_PATH" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<option name="USE_MONO" value="0" />
<option name="RUNTIME_ARGUMENTS" value="" />
<option name="PROJECT_PATH" value="$PROJECT_DIR$/TippuKivet/TippuKivet.csproj" />
<option name="PROJECT_EXE_PATH_TRACKING" value="1" />
<option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
<option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
<option name="PROJECT_KIND" value="DotNetCore" />
<option name="PROJECT_TFM" value="" />
<method v="2">
<option name="Build" />
</method>
</configuration>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="0ece420b-6c30-4076-bfb6-b7d5d926f6cf" name="Changes" comment="" />
<created>1742810361526</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1742810361526</updated>
<workItem from="1742810362569" duration="8643000" />
<workItem from="1742821846343" duration="7405000" />
<workItem from="1742894729158" duration="172000" />
<workItem from="1742895586363" duration="3987000" />
<workItem from="1744008728356" duration="1383000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="UnityProjectConfiguration" hasMinimizedUI="false" />
<component name="VcsManagerConfiguration">
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
</component>
</project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TippuKivet", "TippuKivet\TippuKivet.csproj", "{6F93BB78-40DE-4ECC-8013-9ED759B25F8D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6F93BB78-40DE-4ECC-8013-9ED759B25F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F93BB78-40DE-4ECC-8013-9ED759B25F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F93BB78-40DE-4ECC-8013-9ED759B25F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F93BB78-40DE-4ECC-8013-9ED759B25F8D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
TippuKivet/TippuKivet/Content/kivi.png

27.7 KiB

TippuKivet/TippuKivet/Content/pelaaja.png

58.3 KiB

TippuKivet/TippuKivet/Content/taustakuva.png

1.49 MiB

TippuKivet/TippuKivet/Content/timantti.png

12.6 KiB

#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace TippuKivet
{
/// <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 TippuKivet();
game.Run();
}
}
}
\ No newline at end of file
using Jypeli;
namespace TippuKivet
{
public class TippuKivet : PhysicsGame
{
/// <summary>
/// Pelaajan liikkumisnopeudet oikealle ja vasemmalle.
/// </summary>
private readonly Vector nopeusOikea = new Vector(800, 0);
private readonly Vector nopeusVasen = new Vector(-800, 0);
/// <summary>
/// Pelin keskeiset muuttujat.
/// </summary>
private PhysicsObject pelaaja;
private IntMeter pistelaskuri;
private Timer ajastinTimantit;
private Timer ajastinKivet;
private int ohimenneetTimantit;
/// <summary>
/// Pelin aloitusmetodi. Alustaa kentän, pelaajan ja ajastimet.
/// </summary>
public override void Begin()
{
SetWindowSize(800, 600, false);
ajastinTimantit = Timer.CreateAndStart(1.5, LuoTimantti);
ajastinKivet = Timer.CreateAndStart(3.0, LuoKivi);
pistelaskuri = new IntMeter(0);
LuoPisteNaytto();
Gravity = new Vector(0, -700);
pelaaja = LuoPelaaja(0);
LuoKenttä();
AsetaOhjaimet();
}
/// <summary>
/// Luo pelialueen, alalaatan ja taustan.
/// </summary>
private void LuoKenttä()
{
PhysicsObject alalaatta = Level.CreateBottomBorder();
alalaatta.IsVisible = false;
AddCollisionHandler(alalaatta, "Kivi", KiviAlalaattaCollide);
AddCollisionHandler(alalaatta, "Timantti", TimanttiAlalaattaCollide);
Level.Background.Image = LoadImage("taustakuva");
Level.Background.Color = Color.Black;
Camera.ZoomToLevel();
}
/// <summary>
/// Luo pelaaja-olion peliin.
/// </summary>
/// <param name="x">Pelaajan aloituspaikka x-koordinaatilla.</param>
/// <returns>Palauttaa pelaaja-olion.</returns>
private PhysicsObject LuoPelaaja(double x)
{
PhysicsObject karry = LuoObjekti(150, 200, x, -300, Color.Red, "Pelaaja");
karry.IgnoresCollisionResponse = true;
karry.IgnoresGravity = true;
karry.Image = LoadImage("pelaaja");
AddCollisionHandler(karry, "Kivi", PelaajaKiviCollide);
AddCollisionHandler(karry, "Timantti", PelaajaTimanttiCollide);
Add(karry);
return karry;
}
/// <summary>
/// Luo pistelaskurin näkymän ruudulle.
/// </summary>
private void LuoPisteNaytto()
{
Label pisteNaytto = new Label
{
Position = new Vector(340, 250),
TextColor = Color.Red,
Color = Color.White,
Size = new Vector(5000, 5000),
Title = "Pisteet: ",
};
pisteNaytto.BindTo(pistelaskuri);
Add(pisteNaytto);
}
/// <summary>
/// Luo satunnaiseen paikkaan ilmestyvän timantin.
/// </summary>
private void LuoTimantti()
{
double x = RandomGen.NextDouble(Level.Left + 50, Level.Right - 50);
PhysicsObject timantti = LuoObjekti(60, 60, x, Level.Top + 50, Color.Yellow, "Timantti");
timantti.AngularVelocity = RandomGen.NextDouble(-5.0, 5.0);
timantti.Image = LoadImage("timantti.png");
Add(timantti);
}
/// <summary>
/// Luo satunnaiseen paikkaan ilmestyvän kiven.
/// </summary>
private void LuoKivi()
{
double x = RandomGen.NextDouble(Level.Left + 20, Level.Right - 20);
double randomSize = RandomGen.NextDouble(30.0, 120.0);
PhysicsObject kivi = LuoObjekti(randomSize, randomSize, x, Level.Top + 50, Color.White, "Kivi");
kivi.Velocity = new Vector(0, -400);
kivi.Image = LoadImage("kivi.png");
Add(kivi);
}
/// <summary>
/// Luo uuden peliobjektin annetulla koolla, sijainnilla ja värillä.
/// </summary>
/// <param name="width">Olion leveys.</param>
/// <param name="height">Olion korkeus.</param>
/// <param name="x">Sijainti x-koordinaatilla.</param>
/// <param name="y">Sijainti y-koordinaatilla.</param>
/// <param name="color">Olion väri.</param>
/// <param name="tag">Olion tunniste (Tag).</param>
/// <returns>Palauttaa luodun PhysicsObjectin.</returns>
private PhysicsObject LuoObjekti(double width, double height, double x, double y, Color color, string tag)
{
return new PhysicsObject(width, height, Shape.Rectangle)
{
X = x,
Y = y,
Color = color,
Tag = tag
};
}
/// <summary>
/// Pelaajan ja timantin törmäyskäsittelijä.
/// </summary>
/// <param name="_">Pelaaja (ei käytetä).</param>
/// <param name="timantti">Törmännyt timantti.</param>
private void PelaajaTimanttiCollide(PhysicsObject _, PhysicsObject timantti)
{
pistelaskuri.Value += 1;
timantti.Destroy();
KutistaPelaaja();
if (pistelaskuri.Value >= 10)
{
VoitaPeli();
}
}
/// <summary>
/// Pelaajan ja kiven törmäyskäsittelijä.
/// </summary>
/// <param name="_">Pelaaja (ei käytetä).</param>
/// <param name="kivi">Törmännyt kivi.</param>
private void PelaajaKiviCollide(PhysicsObject _, PhysicsObject kivi)
{
kivi.Destroy();
LopetaPeli("Kivi osui sinua päähän, Peli ohi!");
}
/// <summary>
/// Kiven ja alalaatan törmäyskäsittelijä.
/// </summary>
/// <param name="_">Alalaatta (ei käytetä).</param>
/// <param name="kivi">Putoava kivi.</param>
private void KiviAlalaattaCollide(PhysicsObject _, PhysicsObject kivi)
{
kivi.Destroy();
}
/// <summary>
/// Timantin ja alalaatan törmäyskäsittelijä.
/// </summary>
/// <param name="_">Alalaatta (ei käytetä).</param>
/// <param name="timantti">Putoava timantti.</param>
private void TimanttiAlalaattaCollide(PhysicsObject _, PhysicsObject timantti)
{
timantti.Destroy();
ohimenneetTimantit++;
if (ohimenneetTimantit >= 2)
{
LopetaPeli("Et ollut tarpeeksi tehokas!");
}
}
/// <summary>
/// Pienentää pelaajaa timantin keräämisen jälkeen.
/// </summary>
private void KutistaPelaaja()
{
const double shrinkFactor = 0.9;
const double minSize = 10.0;
if (pelaaja.Width > minSize && pelaaja.Height > minSize)
{
pelaaja.Width *= shrinkFactor;
pelaaja.Height *= shrinkFactor;
}
}
/// <summary>
/// Suoritetaan, kun pelaaja voittaa pelin.
/// </summary>
private void VoitaPeli()
{
MessageDisplay.Add("Olet TippuKiviLuolan suvereeni Päällikkö!");
ajastinTimantit.Stop();
ajastinKivet.Stop();
Timer.SingleShot(6, Exit);
Pause();
}
/// <summary>
/// Pysäyttää pelin ja näyttää häviöviestin.
/// </summary>
/// <param name="viesti">Näytettävä viesti pelaajalle.</param>
private void LopetaPeli(string viesti)
{
MessageDisplay.Add(viesti);
ajastinTimantit.Stop();
ajastinKivet.Stop();
Timer.SingleShot(7, Exit);
Pause();
}
/// <summary>
/// Asettaa pelin ohjaimet (liikkuminen, pause, sulkeminen).
/// </summary>
private void AsetaOhjaimet()
{
Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa vasemmalle", pelaaja, nopeusVasen);
Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa oikealle", pelaaja, nopeusOikea);
Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
}
/// <summary>
/// Asettaa pelaajan nopeuden ja estää kentän reunojen ylittämisen.
/// </summary>
/// <param name="karry">Pelaaja, jonka nopeus asetetaan.</param>
/// <param name="nopeus">Haluttu nopeus vektorina.</param>
private void AsetaNopeus(PhysicsObject karry, Vector nopeus)
{
if ((pelaaja.X + pelaaja.Width / 2 >= Level.Right && nopeus.X > 0) ||
(pelaaja.X - pelaaja.Width / 2 <= Level.Left && nopeus.X < 0))
{
pelaaja.Velocity = Vector.Zero;
}
else
{
pelaaja.Velocity = nopeus;
}
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jypeli.NET" Version="11.*"/>
<PackageReference Include="Jypeli.FarseerPhysics.NET" Version="2.*"/>
</ItemGroup>
<ItemGroup>
<None Update="Content\kivi.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\taustakuva.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\timantti.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\pelaaja.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
suunnitelma/esimerkkikuva.png

9.92 KiB