wiki:lumiukkoKomentorivilta
Last modified 20 months ago Last modified on 2015-09-09 11:20:51

Lumiukko komentoriviltä

Luo tiedosto Lumiukko.cs ja avaa se editoriin. 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);
    }
}

Ota (_ jypeli.zip _) ja pura siitä x86-kansiosta tiedosto Jypeli.dll samaan kansioon Lumiukko.cs-tiedoston kanssa. HUOM! Varmista, että olet purkanut oikean Jypeli.dll-tiedoston. Oikea löytyy em. .zip-tiedoston x86 hakemistosta. Muussa tapauksessa peli kaatuu.

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

csc Lumiukko.cs /reference:Jypeli.dll;"%XNAGSv4%References\Windows\x86\Microsoft.Xna.Framework.Game.dll"  /platform:x86

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

Lumiukko.exe

Jos tulee virhe

error CS0006: Metadata file
        '%XNAGSv4%References\Windows\x86\Microsoft.Xna.Framework.Game.dll' could
        not be found

niin kokeile kääntämistä komennolla

csc Lumiukko.cs /reference:Jypeli.dll;"C:\Windows\Microsoft.NET\assembly\GAC_32\Microsoft.Xna.Framework.Game\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Game.dll" /platform:x86

csk.bat

Yllä esitelty kääntämiskomento on varsin pitkä ja asioiden helpottamiseksi voikin kirjoittaa kotona tiedoston csk.bat, jonka kopioi jonnekin hakemistoon joka on polussa (esimerkin tiedostolla ei tarvitse edes alkuosan polkujuttuja määritellä):

@echo off
SET ERRORLEVEL=
"%WINDIR%\Microsoft.NET\Framework\v4.0.30319\csc" %* /nologo /reference:Jypeli.dll;"%XNAGSv4%References\Windows\x86\Microsoft.Xna.Framework.Game.dll";"%XNAGSv4%References\Windows\x86\Microsoft.Xna.Framework.dll"  /platform:x86   /define:WINDOWS
if ERRORLEVEL 1 goto loppu
%~n1
:loppu

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

csk Lumiukko.cs 

Agoran mikroluokissa csk-komento on valmiina N:\bin hakemistossa ja pitäisi toimia jos sinulla on N-levy mountattuna.

Ukon värin ja ulkonäön muuttaminen

HUOM! Seuraavat koodinpätkät kirjoitetaan tekstieditorissa ohjelmakoodiin! 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ä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, 10);

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