Changeset 6007 for 2015/24


Ignore:
Timestamp:
2015-06-10 23:59:23 (4 years ago)
Author:
empaheik
Message:
 
Location:
2015/24/ohjaajat/Dungeon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 2015/24/ohjaajat/Dungeon/Dungeon/Dungeon/Dungeon.cs

    r6006 r6007  
    107107        Location = paikka; 
    108108    } 
     109} 
     110 
     111public class Barbaari : GameObject 
     112{ 
     113    public Barbaari(double width, double height) 
     114        :base(width, height) 
     115    { } 
     116 
     117    public int Askel { get; set; } 
     118 
    109119} 
    110120 
     
    130140 
    131141    Room[,] huoneet; 
     142    List<Room> kohteet = new List<Room>(); 
    132143    Room spawn; 
    133144    Timer barbaariAjastin = new Timer(); 
     
    222233            }; 
    223234 
     235            Mouse.Listen(MouseButton.Right, ButtonState.Pressed, delegate() { ostamassa = null; }, "Perutaan ostos"); 
     236 
    224237            Label teksti = new Label(); 
    225238            teksti.Position = kuva.Position + new Vector((RUUDUN_KOKO * 1.2), 0); 
     
    241254    void LuoBarbaareja() 
    242255    { 
    243         PhysicsObject barbaari = new PhysicsObject(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4); 
     256        Barbaari barbaari = new Barbaari(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4); 
    244257        barbaari.Color = Color.Red; 
    245258        //barbaari.Position = RandomGen.NextVector(Level.Right, Level.Bottom, Level.Left, Level.Top); 
     
    249262        barbaari.Animation.Start(); 
    250263        Add(barbaari); 
     264 
     265        EtsiBarbaarinReitti(barbaari); 
     266    } 
     267 
     268    void EtsiBarbaarinReitti(Barbaari barbaari) 
     269    { 
     270        Room kohde = kohteet[RandomGen.NextInt(kohteet.Count)]; 
     271 
     272        List<Point> polku = FindPath(kohde.Location, spawn.Location); 
     273        //polku.Reverse();  
     274 
     275        KuljePolkua(barbaari, polku); 
     276    } 
     277 
     278    void KuljePolkua(Barbaari barbaari, List<Point> polku) 
     279    { 
     280 
     281        Timer siirtoAjastin = new Timer(); 
     282        siirtoAjastin.Interval = 2; 
     283        siirtoAjastin.Timeout += delegate 
     284        { 
     285            barbaari.MoveTo(huoneet[polku[barbaari.Askel].X, polku[ barbaari.Askel++].Y].Position, 100); 
     286        }; 
     287        siirtoAjastin.Start(polku.Count); 
     288 
    251289    } 
    252290 
     
    256294        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    257295        Keyboard.Listen(Key.F1, ButtonState.Pressed, Begin, null); 
     296 
    258297 
    259298        Keyboard.Listen(Key.Space, ButtonState.Pressed, SeuraavaAalto, "Anna kivan barbaariaallon tulla"); 
     
    351390        if (ostamassa != null && huone.Dug && kulttuuri.Value >= ostamassa.Price) 
    352391        { 
    353             //huone.Damage = ostettu.Damage; 
    354             //huone.Culture = ostettu.Culture; 
    355             //huone.Image = ostettu.Image; 
    356392            kulttuuri.Value -= ostamassa.Price; 
    357393 
     
    383419            //       se on vain suoraan polun pituus. 
    384420            upg.Culture.Value = polku.Count; 
     421 
     422            kohteet.Add(room); 
    385423        } 
    386424    } 
     
    421459            walkable[paikka.X, paikka.Y] = huoneet[paikka.X, paikka.Y].Dug; 
    422460        } 
    423         var finder = new AStar.PathFinder(new AStar.SearchParameters(alku, loppu, walkable), OviTarkistus); 
     461        var finder = new AStar.PathFinder(new AStar.SearchParameters(loppu, alku, walkable), OviTarkistus); 
    424462        return finder.FindPath(); 
    425463    } 
Note: See TracChangeset for help on using the changeset viewer.