Ignore:
Timestamp:
2017-06-15 15:09:10 (2 years ago)
Author:
npo17_21
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2017/24/AaronL/AdventureLunk/AdventureLunk/AdventureLunk/AdventureLunk.cs

    r8674 r8749  
    1717 
    1818    Image linkYlos = LoadImage("link4"); 
     19    Image linkLyoVasemmalle = LoadImage("link3"); 
     20 
     21    Image hirviökuva = LoadImage("hirvio"); 
    1922    public override void Begin() 
    2023    { 
     
    3235        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaLink, null, new Vector(0, 500)); 
    3336        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaLink, null, new Vector(0, -500)); 
     37        Keyboard.Listen(Key.A, ButtonState.Pressed, LyoMiekalla, null); 
    3438        { 
    3539            Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaLink, null); 
     
    6771    void Paika() 
    6872    { 
    69         Level.Background.Image = LoadImage("paika1"); Level.Background.FitToLevel(); 
     73        Level.Background.Image = LoadImage("aloitus"); Level.Background.FitToLevel(); 
    7074    } 
    7175    void LuoKentta() 
    7276    { 
    7377        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 
    74         ColorTileMap ruudut = ColorTileMap.FromLevelAsset("paika1"); 
     78        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("aloitus"); 
    7579 
    7680        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. 
    77          
     81 
    7882        //ruudut.SetTileMethod(Color.Green, LuoPelaaja); 
    7983        ruudut.SetTileMethod(Color.FromHexCode("28FFA5"), LuoTaso); 
     84        ruudut.SetTileMethod(Color.FromHexCode("2857FF"), LuoLohko); 
     85        ruudut.SetTileMethod(Color.FromHexCode("51A2FF"), LuoPainike); 
     86         
    8087 
    8188        LuoPelaaja(Vector.Zero, 100, 100); 
     
    103110        Add(taso); 
    104111    } 
     112     
     113    void LuoLohko(Vector paikka, double leveys, double korkeus) 
     114    { 
     115        PhysicsObject lohko = new PhysicsObject(leveys*5.0, korkeus*5.0); 
     116        lohko.CanRotate = false; 
     117        lohko.Mass = 100.0; 
     118        lohko.Position = paikka; 
     119        lohko.Color = Color.Green; 
     120 
     121        // TODO: 
     122        // tee tähän AddCollisionHandler, joka määrää että: 
     123        // kun tämä lohko törmää mihin tahansa olioon, jonka täginä on "painike", 
     124        // niin mennään johonkin tiettyyn aliohjelmaan 
     125 
     126        AddCollisionHandler(lohko, "painike", LohkoOsuu); 
     127 
     128        Add(lohko); 
     129    } 
     130 
     131    void LuoPainike(Vector paikka, double leveys, double korkeus) 
     132    { 
     133        PhysicsObject painike = new PhysicsObject(leveys * 5.0, korkeus * 5.0); 
     134        painike.CanRotate = false; 
     135        painike.Mass = 100.0; 
     136        painike.Position = paikka; 
     137        painike.Color = Color.Green; 
     138        Add(painike); 
     139        painike.Tag = "painike"; 
     140    } 
    105141 
    106142    void PysaytaLink() 
     
    108144        LiikutaLink(Vector.Zero); 
    109145    } 
     146    void LohkoOsuu(PhysicsObject lohko, PhysicsObject painike) 
     147    { 
     148        KutsuHirvio(); 
     149        KutsuMieka(); 
     150    } 
     151    void KutsuHirvio() 
     152    { 
     153        PhysicsObject hirviö = new PhysicsObject(100.0, 100.0); 
     154        hirviö.Tag = "vihollinen"; 
     155        Add(hirviö); 
     156        hirviö.Image = hirviökuva;  
     157    } 
     158    void KutsuMieka() 
     159    { 
    110160 
    111      
     161    } 
     162    void LyoMiekalla() 
     163    { 
     164        link.Image = linkLyoVasemmalle; 
     165        List<GameObject> lista = GetObjectsBetween(link.Position + new Vector(-150.0, 0.0), link.Position); 
     166        if (lista.Count > 0) 
     167        { 
     168            foreach(GameObject olio in lista) 
     169            { 
     170                if (olio.Tag.Equals("vihollinen")) 
     171                { 
     172                    olio.Destroy(); 
     173                } 
     174            } 
     175        } 
     176        Timer.SingleShot(1.0, delegate 
     177        { 
     178            link.Image = linkKuva; 
     179        }); 
     180    }    
    112181 
    113182 
Note: See TracChangeset for help on using the changeset viewer.