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 (2)
Showing
with 394 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="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"><![CDATA[{
"keyToString": {
".NET Project.TippuKivet.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
"XThreadsFramesViewSplitterKey": "0.88839287",
"git-widget-placeholder": "main",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "preferences.lookFeel",
"vue.rearranger.settings.migration": "true"
}
}]]></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" />
</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
{
// Pelaajan liikkumisnopeudet oikealle ja vasemmalle
private readonly Vector nopeusOikea = new Vector(800, 0);
private readonly Vector nopeusVasen = new Vector(-800, 0);
// Pelin keskeiset muuttujat
private PhysicsObject pelaaja;
private IntMeter pistelaskuri; // Pisteiden laskuri
private Timer ajastinTimantit; // Ajastin timanttien luomiselle
private Timer ajastinKivet; // Ajastin kivien luomiselle
private int ohimenneetTimantit; // Laskuri, montako timanttia pelaaja on missannut
public override void Begin()
{
// Asetetaan pelin ikkunan koko
SetWindowSize(800, 600, false);
// Aloitetaan timanttien ja kivien generointi
ajastinTimantit = Timer.CreateAndStart(1.5, LuoTimantti);
ajastinKivet = Timer.CreateAndStart(3.0, LuoKivi);
// Alustetaan pistelaskuri
pistelaskuri = new IntMeter(0);
LuoPisteNaytto();
// Asetetaan painovoima
Gravity = new Vector(0, -700);
// Luodaan pelaaja ja pelin kenttä
pelaaja = LuoPelaaja(0);
LuoKenttä();
// Asetetaan ohjaimet
AsetaOhjaimet();
}
private void LuoKenttä()
{
// Luodaan näkymätön alalaatta, johon kivet ja timantit voivat osua
PhysicsObject alalaatta = Level.CreateBottomBorder();
alalaatta.IsVisible = false;
AddCollisionHandler(alalaatta, "Kivi", KiviAlalaattaCollide);
AddCollisionHandler(alalaatta, "Timantti", TimanttiAlalaattaCollide);
// Asetetaan taustakuva ja taustan väri
Level.Background.Image = LoadImage("taustakuva");
Level.Background.Color = Color.Black;
// Zoomataan kamera kenttään sopivaksi
Camera.ZoomToLevel();
}
// Luodaan pelaaja-objekti
private PhysicsObject LuoPelaaja(double x)
{
PhysicsObject pelaaja = LuoObjekti(150, 200, x, -300, Color.Red, "Pelaaja");
pelaaja.IgnoresCollisionResponse = true; // Törmäykset Pelaajaan ei vaikuta.
pelaaja.IgnoresGravity = true; // Painovoima ei vaikuta Pelaajaan
pelaaja.Image = LoadImage("pelaaja");
// Lisätään törmäyskäsittelijät pelaajalle
AddCollisionHandler(pelaaja, "Kivi", PelaajaKiviCollide);
AddCollisionHandler(pelaaja, "Timantti", PelaajaTimanttiCollide);
Add(pelaaja);
return pelaaja;
}
// Luodaan pistelaskuri-näyttö
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);
}
// Luodaan satunnaiseen paikkaan ilmestyvä timantti
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);
}
private void LuoKivi()
{
// Luodaan satunnaiseen paikkaan ilmestyvä kivi
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);
}
// Aliohjelma objektien luomiseen
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
};
}
private void PelaajaTimanttiCollide(PhysicsObject pelaaja, PhysicsObject timantti)
{
pistelaskuri.Value += 1;
timantti.Destroy();
KutistaPelaaja();
if (pistelaskuri.Value >= 10)
{
VoitaPeli();
}
}
// Pelaajan ja kiven törmäyskäsittelijä
private void PelaajaKiviCollide(PhysicsObject pelaaja, PhysicsObject kivi)
{
kivi.Destroy();
LopetaPeli("Kivi osui sinua päähän, Peli ohi!");
}
// Kiven ja alalaatan törmäyskäsittelijä
private void KiviAlalaattaCollide(PhysicsObject alalaatta, PhysicsObject kivi)
{
kivi.Destroy();
}
// Timantin ja alalaatan törmäyskäsittelijä
private void TimanttiAlalaattaCollide(PhysicsObject alalaatta, PhysicsObject timantti)
{
timantti.Destroy();
ohimenneetTimantit++;
if (ohimenneetTimantit >= 2)
{
LopetaPeli("Et ollut tarpeeksi tehokas!");
}
}
// Pelaajan koko pienenee timantin keräämisen jälkeen
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;
}
}
// Peli päättyy voittoon, jos pelaaja kerää tarpeeksi pisteitä
private void VoitaPeli()
{
MessageDisplay.Add("Olet TippuKiviLuolan suvereeni Päällikkö!");
ajastinTimantit.Stop();
ajastinKivet.Stop();
Timer.SingleShot(6, Exit);
Pause();
}
// Peli päättyy häviöön, jos pelaaja osuu kiveen tai missaa liikaa timantteja
private void LopetaPeli(string viesti)
{
MessageDisplay.Add(viesti);
ajastinTimantit.Stop();
ajastinKivet.Stop();
Timer.SingleShot(7, Exit);
Pause();
}
// Määritellään pelin näppäimet, pelaajan liike, pause ja ESC.
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");
}
private void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus)
{
// Estetään pelaajaa menemästä kentän ulkopuolelle
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