Please to interact with this component.

{}

  • Tästä dokumentista on myös versio tehtävän tekemiseksi Windowsissa ja XNA-kirjastolla jos joku sitä haluaa käyttää

Lumiukko komentoriviltä MonoGame + Jypeli

(Tämä tehtävä liittyy Demo 1 -viikkotehtävään.)

Luo tiedosto Lumiukko.cs ja avaa se tekstieditoriin. Kopioi siihen mallin mukainen sisältö.

// Otetaan käyttöön Jyväskylän yliopiston Jypeli-kirjasto
using Jypeli;

/// @author  Antti-Jussi Lakanen, Vesa Lappalainen
/// @version 12.1.2012
///
/// <summary>
/// Luokka, jossa harjoitellaan piirtämistä lisäämällä ympyröitä ruudulle
/// </summary>
public class Lumiukko : PhysicsGame
{
    /// <summary>
    /// Pääohjelmassa laitetaan "peli" käyntiin Jypeli-kirjastolle 
    /// tyypilliseen tapaan
    /// </summary>
    public static void Main()
    {
        using (Lumiukko peli = new Lumiukko())
        {
            peli.Run();
        }
    }

    /// <summary>
    /// Aliohjelmassa piirretään ja zoomataan kamera siten että 
    /// kenttä näkyy hyvin ruudulla.
    /// </summary>
    public override void Begin()
    {
        Camera.ZoomToLevel();
        Level.Background.Color = Color.Black;

        PhysicsObject p1 = new PhysicsObject(2 * 100.0, 2 * 100.0, Shape.Circle);
        p1.Y = Level.Bottom + 200.0;
        Add(p1);

        PhysicsObject p2 = new PhysicsObject(2 * 50.0, 2 * 50.0, Shape.Circle);
        p2.Y = p1.Y + 100 + 50;
        Add(p2);

        PhysicsObject p3 = new PhysicsObject(2 * 30.0, 2 * 30.0, Shape.Circle);
        p3.Y = p2.Y + 50 + 30;
        Add(p3);
    }
}

Windows käyttäjät:

Lataa jypeli.zip-tiedosto ja pura sen sisällöstä kaikki *.dll samaan kansioon Lumiukko.cs-tiedoston kanssa. Purkamisesta: Windowsin tiedostonäkymässä voit tuplaklikata tiedostoa, jolloin voit copy-pastettaa oikeat tiedostot Lumiukon kanssa samaan paikkaan.

Kirjoita PowerShellillä (voit copy-pasteta tuon pitkän rimpsun)

csc Lumiukko.cs /reference:Jypeli.dll';'Jypeli.Physics2d.dll';'MonoGame.Framework.dll /platform:x86

HUOM! Jos ylempi ei toimi, varmista että olet noudattanut ohjeita täältä.

Komentorivillä (cmd.exe) vastaava komento olisi

csc Lumiukko.cs /reference:Jypeli.dll;Jypeli.Physics2d.dll;MonoGame.Framework.dll /platform:x86

Käännetyn ohjelman voi ajaa kirjoittamalla komentoriville allaolevan tekstin. Syntynyt "peli-ikkuna" saadaan pois painamalla Alt-F4.

.\Lumiukko.exe

Mac ja Linux:

Käännösohjeet alempana sivua.

Mikähän on kun tuli että the system cannot execute the specified program? pitääkö asentaa vielä erikseen joku ohjelma? tuossa lumiukossa siis

VL: näillä tiedoilla ei voi vielä sanoa mitään :-)

Joo katsoin luennon tallenteen. siinä sinulla avautui joku eri ikkuna johon lumiukko piirtyi, mutta minulla niin ei tapahdu

VL: mutta kun et kerto käyttistä tai sitä mitä olet tehnyt sitä ennen ja onko edellä tullut virheitä, niin mahdotonta vastata :-) - VL

13 Sep 20 (edited 13 Sep 20)
# csm

csm.bat (vain Windows)

Tämän luvun voit ohittaa ja hypätä lukuun "Ukon värit" jos siedät tuon, että kääntäminen vaatii aina sen pitkän "rimpsun". Jos haluat helpottaa asioita, voit tehdä tämän luvun ohjeet.

Yllä esitelty kääntämiskomento on varsin pitkä ja asioiden helpottamiseksi voikin kotikoneella kirjoittaa bat-tiedoston, jonka ajamalla suoritetaan koko pitkä komento. Agoran mikroluokissa csm-komento on valmiina N:\bin hakemistossa ja pitäisi toimia jos sinulla on N-levy mountattuna.

Pura uudelleen aiemmin lataamasi jypeli.zip jonnekin pysyvämpään paikkaan. Seuraavaksi (suosittelen tätä hakmeistoa) oletetaan että sen sisältö on hakemistossa C:\devel\Jypeli.

Luo tiedosto nimeltään csm.bat (kuvitellaan että nimessä on lyhennetty C-sharp ja Monogame):

Täytyykö tätä varten olla asennettuna erikseen MonoGame? En löydä tuota mono.dll- tiedostoa mistään. Olen asentanut Visual Studioon “MonoGame project templates”- laajennuksen.

Ei tarvitse, tuossa ohjeessa on kaikki Monogameen ja Jypeliin liittyvät polut väärin. Korjataan… -MR

07 Sep 20 (edited 07 Sep 20)

Huom! Kirjoita csc-kääntäjän hakemiston kohdalle sama hakemisto joka sinulla toimi HelloWorldiä tehdessä (Tuo kohta mikä alkaa "c:\Program Files...").

@echo off
SET ERRORLEVEL=1
SET jypelidllpath=C:\devel\Jypeli
"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn\csc.exe" %* /nologo /reference:Jypeli.dll;Jypeli.Physics2d.dll;MonoGame.Framework.dll "/lib:%jypelidllpath%"
if ERRORLEVEL 1 goto loppu
xcopy "%jypelidllpath%\*.dll" /d /y >nul
%~n1
del *.dll
:loppu

Kopioi/siirrä tämä tiedosto johonkin hakemistoon, joka on polussa. Esimerkiksi Notepad++-ohjeen bat-osuudessa lisättiin polkuun hakemisto C:\bat.

Tämän jälkeen kääntäminen ja samalla ajaminen (jos käännös onnistuu) onnistuu komennolla

csm Lumiukko.cs 
# color

Ukon värin ja ulkonäön muuttaminen

HUOM! Seuraavat koodinpätkät kirjoitetaan tekstieditorissa ohjelmakoodiin (eli tiedostoon Lumiukko.cs)! Kokeile palloille erilaisia värejä. Esimerkiksi

p2.Color = Color.HotPink;

Rivin voit lisätä mihin tahansa sen jälkeen kun muuttuja p2 on esitelty. Kuitenkin ennen aliohjelman lopettavaa aaltosulkua }. Paras paikka on siellä, missä muutenkin käsitellään p2 muuttujaa (siis ennen kuin p3 on esitelty).

Käännä ja aja ohjelma edellisissä osuuksissa opetetulla tavalla, ja ihastele aikaansaamaasi muutosta.

Käytössä olevat valmiit värien nimet näet esimerkiksi Jypelin dokumentaatiosta tai ohjeista.

Minkä tahansa värin voit itse tehdä kutsulla tyyliin:

  p3.Color = new Color(173, 255, 47, 50);

missä parametrit ovat järjestyksessä Red, Green, Blue, Alpha. Kukin arvo voi vaihdella välillä 0-255. Alpha tarkoittaa läpinäkyvyysarvoa, 0 täysin läpinäkyvä, 255 täysin läpinäkymätön.

Luonnollisesti voit vaihtaa myös taustan värin sellaiseksi kuin haluat -- kokeile.

Kokeile kirjaston ohjeiden mukaan vaihtaa alin pallo kaksi kertaa leveämmäksi. Älä muuta "pallon" korkeutta.

Piirrä ukolle silmät.

Lisätehtävä: Voimia peliin

Lisää Begin-aliohjelman loppuun rivi (muistathan, että Begin-metodi alkaa Begin-rivin jälkeisestä aaltosulusta, ja päättyy vastaavasti metodin sulkevaan aaltosulkuun, eli "aliohjelman loppuun" tarkoittaa ennen sen lopettavaa aaltosulkua):

Gravity = new Vector(0, -400);
  • käännä ja aja
  • kokeile muita lukuja -400:n paikalle
# osx

Lumiukon kääntäminen ja ajaminen MacOS:ssa

  1. Oletetaan että VisualStudio ja Jypeli on asennettu ohjeiden mukaan

  2. Lataa oheinen .zip tiedosto. Tarvittava .zip tiedosto

  3. Kirjoita tiedosto Lumiukko.cs ja tallenna se purettuun kansioon

  4. Lumiuko koodi käännetään komennolla:

    mcs -r:Jypeli.dll -r:Jypeli.Physics2d.dll -r:MonoGame.Framework.dll Lumiukko.cs
  5. .exe tiedoston ajaminen onnistuu komennolla:

    mono Lumiukko.exe
  6. Jos saat virheen:

    "libSDL2-2.0.0.dylib" cannot be opened because the developer cannot be verified.

    etsi kyseinen tiedosto Finderillä (voi olla eri tiedosto samalla virheellä) edellä tekemästäsi kansiosta ja aukaise se hiiren oikeasta aukeavasta valikosta klikkaamalla avaa (tiedoston tuplaklikkaaminen ei riitä), jolloin se varoittaa ja pyytää antamaan oikeuksia tiedostolle. Tämän jälkeen aja kohdan 5. komento uudelleen.

Moi! Tosiaan Lumiukko.exe ei välttämättä toimi ja antaa virhekoodia koska “tuntemattomasta lähteestä oleva tiedosto”. Tämän voi korjata niin että avaa Järjestelmäasetukset. Tämän jälkeen vasemmasta alakulmasta klikkaa Lukko-ikonia ja avaa lukon syöttämällä oman salasanan. Kun lukko on auki tulee sinun siirtyä vasemmassa reunassa olevassa listassa kohtaan “Kehitystyökalut” ja sieltä pitää laittaa rasti ruutuun kohtaan “Pääte”. Tämän jälkeen Lumiukko.exe pitäisi toimia kun sen avaa komentorivillä.

-Tarkennuksia ylläolevaan ohjeistukseen: avaa Macin omat Järjestelmäasetukset -> valitse aihe Suojaus ja yksityisyys -> klikkaa lukko-ikonia ikkunan alalaidassa -> kirjoita salasana -> valitse vasemman puolen listasta Kehitystyökalut -> raksi ruutuun oikean puolen laatikossa kohtaan Pääte -> (uudelleenkäynnistä Pääte, ja) kokeile uudestaan. Kirjoitin ulkomuistista, jos ei toimi niin laita kommenttia. - Juho K

09 Sep 20 (edited 13 Sep 20)

En nyt jostain syystä löydä tätä. Siis tarkoitat Macin järjestelmäasetuksia, ei tietyn ohjelman?

-Joo, Macin järjestelmäasetuksista. Kokeile ylemmän kommentin tarkennettua ohjeistusta. - Juho K

13 Sep 20 (edited 13 Sep 20)
# linux

Lumiukon kääntäminen ja ajaminen Linuxissa

  1. Oletetaan että työkalut on asennettu ohjeiden mukaan

  2. Luo ja siirry vaikkapa hakemistoon lumiukko omassa hakemistossasi (esimerkissä /home/vesal)

  3. Kirjoita tiedosto Lumiukko.cs jollakin editorilla ja tallenna se

  4. Lataa ja pura samaan hakemistoon LinuxDLLs.zip

  5. Käännä ohjelmasi komennolla

    mcs /r:Jypeli.dll /r:MonoGame.Framework.dll
    /r:Jypeli.Physics2d.dll Lumiukko.cs 
  6. Aja käännetty ohjelma komennolla mono Lumiukko.exe

  7. Jos saat virheen:

    System.TypeInitializationException: The type initializer for 'Sdl'
    threw an exception. ---> System.Exception: Failed to load SDL library.
    ...

    Aja komento sudo apt-get install libsdl1.2debian libsdl-mixer1.2

  8. Harjoittele ohjelman muokkaamista osioissa Ukon värin ja ulkonäön muuttaminen ja Lisätehtävä: Voimia peliin

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.