Ignore:
Timestamp:
2016-06-10 12:12:27 (3 years ago)
Author:
sieerinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/23/HenriK/dungeoncrawlar/dungeoncrawlar/dungeoncrawlar/dungeoncrawlar.cs

    r5894 r7234  
    66using Jypeli.Effects; 
    77using Jypeli.Widgets; 
     8 
    89class Pelihahmo : PhysicsObject 
    910{ 
     
    2122public class dungeoncrawlar : PhysicsGame 
    2223{ 
    23     PhysicsObject ovi; 
     24    EasyHighScore ennätys = new EasyHighScore(); 
     25     
    2426    Pelihahmo player; 
    2527    PhysicsObject ammus; 
     
    3234 
    3335    Listener aseNyt; 
    34     Image[] lattiatext = LoadImages("blackwhitegorund bloody1", "blackwhitegorund bloody2", "blackwhiteground"); 
     36    Image[] lattiatext = LoadImages("stooones mang", "stooones mang2", "stooones mang3"); 
     37    Image[] NRGpellet = LoadImages("NRGpellet1", "NRGpellet2", "NRGpellet3", "NRGpellet4","NRGpellet5","NRGpellet5.5","NRGpellet6","NRGpellet6"); 
    3538    Image[] lattiakolo = LoadImages("blackwhitegroundhole1.", "blackwhitegroundhole2", "blackwhitegroundhole2 - Copy", "blackwhitegroundhole3", "blackwhitegroundhole3 - copy", "blackwhitegroundhole4", "blackwhitegroundhole4 - copy"); 
    36     Image[] ruumisvihu = LoadImages("zombi1","zombi2","zombi3", "zombi4", "zombi5", "zombi6", "zombi7"); 
    37  
     39    Image ruumisvihu = LoadImage("lizerded"); 
     40 
     41    int taso= 1; 
     42    int pisteet = 0; 
    3843    int avaintenLkm; 
    3944    int l96 = 0; 
    4045    int elämät = 100; 
     46    int lisko = 0; 
    4147     
    4248    int nog = 0; 
     49 
     50 
     51    PhysicsObject[] palat; 
     52    Image dead_dragon = LoadImage("dedragon"); 
     53    Image dead_dragonbod = LoadImage("dedragon bod"); 
     54    Image paaKuva = LoadImage("weedragon hed"); 
     55 
     56    Image hantaKuva = LoadImage("weedragon"); 
     57    Image hantaKuvaFlip; 
     58    Image paaKuvaFlip; 
     59    Image dead_dragonFlip; 
    4360     
    44       
    45  
    46      
    4761 
    4862    public override void Begin() 
    4963    { 
     64        player = new Pelihahmo(45, 50, elämät + nog, 100 + nog); 
     65        hantaKuvaFlip = Image.Flip(hantaKuva); 
     66        paaKuvaFlip = Image.Flip(paaKuva); 
     67 
    5068        SmoothTextures = false; 
    5169        luohuone(1); 
     70        IsFullScreen = false; 
    5271         
    5372         
     
    86105        Add(ruumis, -1); 
    87106        ruumis.MaximumLifetime = TimeSpan.FromSeconds(200); 
    88         ruumis.Animation = new Animation(ruumisvihu); 
    89         ruumis.Animation.FPS = 7; 
    90         ruumis.Animation.Start(); 
     107 
     108 
     109    } 
     110    void luoPelaajaRuumis(Vector paikka, Image kuva,Angle kulma) 
     111    { 
     112        GameObject ruumis = new GameObject(50, 55); 
     113        ruumis.Image = kuva; 
     114        ruumis.Position = paikka; 
     115        ruumis.Angle = kulma; 
     116        Add(ruumis, -1); 
    91117    } 
    92118    void lepakko(Vector paikka, double leveys, double korkeus) 
     
    149175    void Vihu(Vector paikka, double leveys, double korkeus) 
    150176    { 
     177        lisko++; 
    151178        arvotext(paikka, leveys, korkeus); 
    152         Pelihahmo vihu = new Pelihahmo(50, 50, 20, 20); 
     179        Pelihahmo vihu = new Pelihahmo(60, 40, 20, 20); 
    153180        vihu.Position = paikka; 
    154181        vihu.LinearDamping = 0.5; 
    155182        Add(vihu); 
    156  
    157          
    158          
    159         Image c = LoadImage("zombi"); 
     183        vihu.CollisionIgnoreGroup = 4; 
     184 
     185         
     186         
     187        Image[] Lizerd = LoadImages("lizerd1", "lizerd2", "lizerd4", "lizerd3"); 
    160188        //vihu.Shape = Shape.FromImage(c); 
    161         vihu.Image = c; 
    162         vihu.ElamaLaskuri.LowerLimit += delegate 
    163              
    164         {  
     189         
     190        vihu.Animation = new Animation(Lizerd); 
     191        vihu.Animation.FPS = 7; 
     192        vihu.Animation.Start(); 
     193 
     194        vihu.ElamaLaskuri.LowerLimit += delegate    
     195        { 
     196            pisteet = pisteet + 100; 
    165197            vihu.Destroy(); 
    166             luoruumis(vihu.Position, ruumisvihu[0]); 
     198            luoruumis(vihu.Position, ruumisvihu); 
     199            lisko--; 
     200            MessageDisplay.Add("liskoja jäljellä:" + lisko); 
     201            player.ElamaLaskuri.Value += 4; 
    167202        }; 
    168203 
     
    182217        { 
    183218            GameObject väistä = null; 
    184             double väistöEtäisyys = 10; 
     219            double väistöEtäisyys = 40; 
    185220            foreach (GameObject ammus in GetObjectsWithTag("ammus")) 
    186221            { 
     
    205240        ajastin.Start(); 
    206241    } 
     242    void bossi(Vector paikka, double leveys, double korkeus) 
     243    { 
     244        arvotext(paikka, leveys, korkeus); 
     245        Image Liz_King = LoadImage("liz king"); 
     246        Pelihahmo pääVihu = new Pelihahmo(700, 400, 20000, 20000); 
     247        pääVihu.Position = paikka; 
     248        pääVihu.Shape = Shape.FromImage(Liz_King); 
     249        pääVihu.LinearDamping = 0.8; 
     250        Add(pääVihu); 
     251        pääVihu.CollisionIgnoreGroup = 4; 
     252        pääVihu.Tag = "vihu"; 
     253         
     254        Timer bossiajastin = new Timer(); 
     255        bossiajastin.Interval = 3; 
     256        bossiajastin.Timeout += () => bossiattackrotate(pääVihu); 
     257        bossiajastin.Start(); 
     258 
     259         
     260         
     261        ProgressBar elamaPalkki = new ProgressBar(800, 30); 
     262        elamaPalkki.X = 0; 
     263        elamaPalkki.Y = Window.Height / 2 - 100; 
     264         
     265        elamaPalkki.BindTo(pääVihu.ElamaLaskuri); 
     266        Add(elamaPalkki); 
     267 
     268        pääVihu.Image = Liz_King; 
     269        pääVihu.ElamaLaskuri.LowerLimit += delegate 
     270        { 
     271            pisteet = pisteet + 10000; 
     272            pääVihu.Destroy(); 
     273            luoruumis(pääVihu.Position, ruumisvihu); 
     274            lisko--; 
     275            MessageDisplay.Add("tapoit pää bossin"); 
     276            bossiajastin.Stop(); 
     277            LisaaPorrasYlos(pääVihu.Position, 100, 100); 
     278        }; 
     279    } 
     280    void bossiattackrotate(Pelihahmo vihu) 
     281    { 
     282 
     283        RandomGen.SelectOne(new Action[] { () => bossishoot(vihu), () => bossislam(vihu), () => bossispawn(vihu.Position) })(); 
     284    } 
     285    void bossishoot(Pelihahmo vihu) 
     286    { 
     287        for (int i = 0; i <= 5; i++ ) 
     288        { 
     289 
     290            PhysicsObject homAmmus = new PhysicsObject(10, 10); 
     291            homAmmus.IgnoresCollisionResponse = true; 
     292            homAmmus.Position = vihu.Position; 
     293            homAmmus.Animation = new Animation(NRGpellet); 
     294            homAmmus.Animation.FPS = 7; 
     295            homAmmus.Animation.Start(); 
     296            homAmmus.Angle = vihu.Angle * 5 * i; 
     297 
     298 
     299            Add(homAmmus); 
     300            homAmmus.MaximumLifetime = new TimeSpan(100000000); 
     301            homAmmus.Push(homAmmus.Angle.GetVector() * 100000 ); 
     302            FollowerBrain aivo = new FollowerBrain(player); 
     303            aivo.Speed = 200; 
     304            homAmmus.Brain = aivo; 
     305            homAmmus.Tag = "vihu"; 
     306            AddCollisionHandler(homAmmus, "player", delegate(PhysicsObject a, PhysicsObject b) 
     307            { 
     308                vahinko(a, b, 10); 
     309            }); 
     310        } 
     311    } 
     312    void bossislam(Pelihahmo vihu) 
     313    { 
     314        int ammuksia = 60; 
     315 
     316        for (int i = 0; i <= ammuksia; i++) 
     317        { 
     318            PhysicsObject ammus2 = new PhysicsObject(10, 10); 
     319             
     320            ammus2.IgnoresCollisionResponse = true; 
     321            ammus2.Position = vihu.Position; 
     322            ammus2.Animation = new Animation(NRGpellet); 
     323            ammus2.Animation.FPS = 7; 
     324            ammus2.Animation.Start(); 
     325            ammus2.Angle = Angle.FromDegrees(360 * i/(double)ammuksia); 
     326 
     327            Add(ammus2); 
     328            ammus2.MaximumLifetime = TimeSpan.FromSeconds(3); 
     329            ammus2.Push(ammus2.Angle.GetVector() * 10000); 
     330             
     331            ammus2.Tag = "vihu"; 
     332            AddCollisionHandler(ammus2, "player", delegate(PhysicsObject a, PhysicsObject b) 
     333            { 
     334                vahinko(a, b, 10); 
     335            }); 
     336        } 
     337    } 
     338    void bossispawn(Vector paikka) 
     339    { 
     340        Vihu(paikka, 60, 40); 
     341    } 
     342     
    207343     
    208344    void aseet() 
    209345    { 
    210346 
    211         if (l96 > 0) 
    212         { 
    213             Keyboard.Listen(Key.D1, ButtonState.Pressed, aseenVaihto, "aseen vaihto", 1); 
    214         }     
    215              
    216          
    217          
    218         Keyboard.Listen(Key.D3, ButtonState.Pressed, aseenVaihto, "aseen vaihto", 2); 
     347         
     348 
     349 
     350        Keyboard.Listen(Key.Enter, ButtonState.Down, ammupistol, "pum pum"); 
     351 
     352        /*Keyboard.Listen(Key.D3, ButtonState.Pressed, aseenVaihto, "aseen vaihto", 2); 
    219353        Keyboard.Listen(Key.D4, ButtonState.Pressed, aseenVaihto, "aseen vaihto", 3); 
    220         Keyboard.Listen(Key.Space, ButtonState.Pressed, lyö, "aseen vaihto"); 
     354        Keyboard.Listen(Key.Space, ButtonState.Pressed, lyö, "aseen vaihto");*/ 
    221355 
    222356         
     
    225359    void aseenVaihto(int ase) 
    226360    { 
    227         if (aseNyt != null) 
     361        /*if (aseNyt != null) 
    228362        { 
    229363            aseNyt.Destroy(); 
    230         } 
    231          
    232         switch (ase) 
     364        }*/ 
     365        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, ammupistol, "pum pum"); 
     366        /*switch (ase) 
    233367        { 
    234368            case 1:          
     
    241375                aseNyt = Mouse.Listen(MouseButton.Left, ButtonState.Pressed, ammupistol, "pum pum"); 
    242376                break; 
    243         }    
     377        } */ 
    244378    } 
    245379    void block() 
     
    260394         
    261395        //ammus.Hit(impulssi); 
    262         ammus.MaximumLifetime = new TimeSpan(20000); 
     396        ammus.MaximumLifetime = new TimeSpan(10000); 
    263397 
    264398    } 
     
    289423 
    290424    } 
    291     void ammu() 
    292     { 
    293         
    294         Image c = LoadImage("characterl96"); 
    295         player.Shape = Shape.FromImage(c); 
    296         player.Image = c; 
    297          
    298          
    299  
    300         ammus = new PhysicsObject(5.0, 5.0); 
     425    void ammupistol() 
     426    { 
     427 
     428        Image i = LoadImage("thecharacterpistol"); 
     429        player.Shape = Shape.FromImage(i); 
     430        player.Image = i; 
     431 
     432 
     433 
     434        ammus = new PhysicsObject(30.0, 10.0); 
    301435        ammus.Shape = Shape.Circle; 
    302436        ammus.Color = Color.Gold; 
    303437        ammus.Position = player.Position; 
    304438        ammus.CollisionIgnoreGroup = 1; 
     439        ammus.CollisionIgnoreGroup = 5; 
    305440        Image d = LoadImage("bullet"); 
    306441        ammus.Shape = Shape.FromImage(d); 
     
    310445        Add(ammus); 
    311446 
    312         Vector impulssi = Vector.FromLengthAndAngle(2500, player.Angle); 
     447        Vector impulssi = Vector.FromLengthAndAngle(1000 + player.Velocity.Magnitude, player.Angle); 
    313448        ammus.Hit(impulssi); 
    314         ammus.MaximumLifetime = new TimeSpan(20000000); 
    315  
    316         AddCollisionHandler(ammus, "vihu", delegate(PhysicsObject a, PhysicsObject b) 
    317         { 
    318             vahinko(a, b, 20); 
    319         }); 
    320  
    321          
    322     } 
    323     void ammupistol() 
    324     { 
    325  
    326         Image i = LoadImage("thecharacterpistol"); 
    327         player.Shape = Shape.FromImage(i); 
    328         player.Image = i; 
    329  
    330  
    331  
    332         ammus = new PhysicsObject(10.0, 10.0); 
    333         ammus.Shape = Shape.Circle; 
    334         ammus.Color = Color.Gold; 
    335         ammus.Position = player.Position; 
    336         ammus.CollisionIgnoreGroup = 1; 
    337         Image d = LoadImage("bullet"); 
    338         ammus.Shape = Shape.FromImage(d); 
    339         ammus.Image = d; 
    340         ammus.Angle = player.Angle; 
    341         ammus.Tag = "ammus"; 
    342         Add(ammus); 
    343  
    344         Vector impulssi = Vector.FromLengthAndAngle(2500, player.Angle); 
    345         ammus.Hit(impulssi); 
    346         ammus.MaximumLifetime = new TimeSpan(20000000); 
     449         
     450        ammus.MaximumLifetime = new TimeSpan(1000000); 
    347451        AddCollisionHandler(ammus, "vihu", delegate(PhysicsObject a, PhysicsObject b) 
    348452        { 
     
    372476    void luohuone(int huoneNumero) 
    373477    { 
    374         Window.Width = 800; 
    375         Window.Height = 800; 
     478        Window.Width = 2048; 
     479        Window.Height = 1024; 
     480        Window.Top = 0; 
    376481        Camera.Zoom(0.5); 
    377482 
     
    383488         
    384489         
    385         TileMap ruudut = TileMap.FromLevelAsset("huone" + huoneNumero); 
     490        /*TileMap ruudut = TileMap.FromLevelAsset("huone" + huoneNumero); 
    386491        TileMap ruudut2 = TileMap.FromLevelAsset("huone" + huoneNumero); 
    387492 
     
    404509        ruudut.SetTileMethod('a', LuoAse96); 
    405510        ruudut.SetTileMethod('j', luoJuggernog); 
    406         /*ruudut.SetTileMethod('z', Luokolo5); 
     511        ruudut.SetTileMethod('z', Luokolo5); 
    407512        ruudut.SetTileMethod('b', Luokolo2); 
    408513        ruudut.SetTileMethod('g', Luokolo3); 
    409514        ruudut.SetTileMethod('t', Luokolo4); 
    410         ruudut.SetTileMethod('r', Luokolo1);*/ 
     515        ruudut.SetTileMethod('r', Luokolo1); 
    411516         
    412517         
     
    418523        ruudut2.SetTileMethod('l', lepakko); 
    419524        ruudut.Execute(64, 64); 
    420         ruudut2.Execute(64, 64); 
    421          
    422          
    423  
    424         Camera.StayInLevel = true; 
     525        ruudut2.Execute(64, 64);*/ 
     526        ClearAll(); 
     527         
     528        TileMap test; 
     529        if (taso % 5 == 0) 
     530        { 
     531            LuolaGeneraattori gen = new LuolaGeneraattori((string derp) => { }); 
     532            gen.CreateDungeon(60, 40, features: 200, chests: 15); 
     533            var tiles = gen.GetDungeon(); 
     534            test = new TileMap(tiles); 
     535        } 
     536        else 
     537            test = TileMap.FromLevelAsset("boss"); 
     538  
     539  
     540        test.SetTileMethod('S', LisaaSeina); 
     541        test.SetTileMethod('|', LisaaSeina); 
     542        test.SetTileMethod('.', LisaaSeina); 
     543        test.SetTileMethod('b', bossi); 
     544        test.SetTileMethod('_', LisaaLattia); 
     545        test.SetTileMethod('#', LisaaLattia); 
     546        test.SetTileMethod('+', LisaaPorrasYlos); 
     547        test.SetTileMethod('-', LisaaPorrasAlas); 
     548        test.SetTileMethod('-', LuoPelaaja); 
     549        test.SetTileMethod('D', LisaaLattia); 
     550        test.SetTileMethod('C', LisaaArkku); 
     551        test.Execute(100, 100); 
     552  
     553        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     554  
     555        //Keyboard.Listen(Key.Space, ButtonState.Pressed, Begin, null); 
     556                Camera.StayInLevel = true; 
    425557        näppäimet(); 
    426558        aseet(); 
    427559        avaintenLkm = 0; 
    428         
    429          
    430         
    431  
    432     } 
    433      
     560 
     561    } 
     562  
     563    void LisaaSeina(Vector paikka, double leveys, double korkeus) 
     564    { 
     565        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     566        taso.Position = paikka; 
     567        taso.Color = Color.Black; 
     568        Add(taso); 
     569    } 
     570  
     571    void LisaaLattia(Vector paikka, double leveys, double korkeus) 
     572    { 
     573        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     574        taso.Position = paikka; 
     575        Image tasoKuva = arvotext(paikka, leveys, korkeus); 
     576        taso.Image = tasoKuva; 
     577        taso.IgnoresCollisionResponse = true; 
     578         
     579        Add(taso, -3); 
     580    } 
     581  
     582    void LisaaPorrasAlas(Vector paikka, double leveys, double korkeus) 
     583    { 
     584        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     585        taso.Position = paikka; 
     586        taso.Color = Color.Red; 
     587         
     588         
     589        Add(taso, 6); 
     590         
     591         
     592    } 
     593  
     594    void LisaaPorrasYlos(Vector paikka, double leveys, double korkeus) 
     595    { 
     596        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     597        taso.Position = paikka;      
     598        taso.Color = Color.Blue; 
     599        taso.Tag = "porrasA"; 
     600        Add(taso); 
     601    } 
     602  
     603    void LisaaArkku(Vector paikka, double leveys, double korkeus) 
     604    { 
     605        if (RandomGen.NextDouble(0, 100) < 50) 
     606        { 
     607            PhysicsObject arkku = new PhysicsObject(leveys, korkeus); 
     608            arkku.Position = paikka; 
     609            arkku.Color = Color.Brown; 
     610            LisaaLattia(paikka, leveys, korkeus); 
     611            Add(arkku, 1); 
     612        } 
     613        else 
     614        { 
     615            Vihu(paikka, leveys, korkeus); 
     616             
     617        } 
     618    } 
     619 
     620  
    434621    void AvaintenKerays(PhysicsObject tormaaja, PhysicsObject tormatty) 
    435622    { 
     
    450637    } 
    451638 
    452     void arvotext(Vector paikka, double leveys, double korkeus) 
     639    Image arvotext(Vector paikka, double leveys, double korkeus) 
    453640    { 
    454641        GameObject taso = new GameObject(leveys, korkeus); 
    455642        taso.Position = paikka; 
    456643        //taso.CollisionIgnoreGroup = 1; 
    457         if (RandomGen.NextDouble(0, 100) < 95) 
     644        if (RandomGen.NextDouble(0, 100) < 50) 
    458645        { 
    459646            taso.Image = lattiatext[2]; 
     647            return lattiatext[2]; 
    460648        } 
    461649        else 
     
    463651            int x = RandomGen.NextInt(2); 
    464652            taso.Image = lattiatext[x]; 
     653            return lattiatext[x]; 
    465654        } 
    466655 
     
    500689        //delegate(PhysicsObject a, PhysicsObject b) {kerays(a, b, "avain");} 
    501690    } 
    502     void OvenAvaus(PhysicsObject tormaaja, PhysicsObject ovi) 
    503     { 
    504         if (Keyboard.GetKeyState(Key.E)==ButtonState.Down) 
    505         { 
    506             elämät = player.ElamaLaskuri.Value; 
    507             ClearAll(); 
    508             luohuone(RandomGen.NextInt(2, 6)); 
    509  
    510  
     691    void alasMeno(PhysicsObject tormaaja, PhysicsObject porrasA) 
     692    { 
     693        if(lisko == 0) 
     694        { 
     695            if (Keyboard.GetKeyState(Key.E) == ButtonState.Down) 
     696            { 
     697                elämät = player.ElamaLaskuri.Value; 
     698                pisteet = pisteet + 1000; 
     699                taso++; 
     700                /*if (taso == 5) 
     701                { 
     702                    bossi; 
     703                }*/ 
     704                Begin(); 
     705                MessageDisplay.Add("pisteesi:" + pisteet); 
     706                MessageDisplay.Add("taso:" + taso); 
     707                 
     708            } 
     709 
     710 
     711         
    511712        } 
    512713    } 
     
    514715    { 
    515716        arvotext(paikka, leveys, korkeus); 
    516         player = new Pelihahmo(45, 50, elämät +nog, 100 + nog); 
     717        player.Position = paikka; 
    517718        Image c = LoadImage("thecharacter"); 
    518719        player.Shape = Shape.FromImage(c); 
    519         player.Image = c; 
     720        player.Image = paaKuva; 
    520721        player.ElamaLaskuri.LowerLimit += delegate 
    521722        { 
    522723            player.Destroy(); 
    523             luoruumis(player.Position, ruumisvihu[0]); 
     724            ennätys.EnterAndShow(pisteet); 
     725             
     726            ennätys.HighScoreWindow.Closed += (Window w) => Begin(); 
     727            luoPelaajaRuumis(player.Position, dead_dragon, player.Angle); 
     728            pisteet = 0; 
     729            for (int i = 0; i < palat.Length; i++) 
     730            { 
     731                palat[i].Destroy(); 
     732                luoPelaajaRuumis(palat[i].Position, dead_dragonbod, palat[i].Angle); 
     733            } 
    524734        }; 
    525735         
     
    529739        player.LinearDamping = 0.6; 
    530740        player.AngularDamping = 0.6; 
    531         player.CollisionIgnoreGroup = 1; 
     741        player.CollisionIgnoreGroup = 1;  
     742        player.CollisionIgnoreGroup = 5; 
    532743         
    533744        player.MaxAngularVelocity = 8000.0; 
    534745        player.Color = Color.Brown; 
    535746        player.Mass = 1; 
    536         Add(player); 
     747        Add(player, 3); 
    537748        player.Tag="player"; 
    538749 
     750        palat = new PhysicsObject[10]; 
     751         
     752        for (int i = 0; i < palat.Length; i++) 
     753        { 
     754            palat[i] = new PhysicsObject(60, 60); 
     755            palat[i].Image = paaKuva; 
     756            Add(palat[i]); 
     757        } 
     758 
     759        var ajastin = new Timer(); 
     760        ajastin.Interval = 0.01; 
     761        ajastin.Timeout += () => OhjaaPaloja(player, 40); 
     762        ajastin.Start(); 
     763 
    539764        AddCollisionHandler(player, "avain", AvaintenKerays); 
    540         AddCollisionHandler(player, "ovi", OvenAvaus); 
     765        AddCollisionHandler(player, "porrasA", alasMeno); 
    541766        AddCollisionHandler(player, "l96wallbuy", PoimiAse); 
    542767        AddCollisionHandler(player, "juggernog", PoimiNog); 
    543768        //AddCollisionHandler(vihu, "player", zombinruokaa); 
    544769 
    545         ProgressBar elamaPalkki = new ProgressBar(player.Width, player.Height* 0.25); 
    546         elamaPalkki.X = player.X - 20; 
    547         elamaPalkki.Y = player.Y; 
    548         elamaPalkki.Angle = player.Angle + Angle.FromDegrees(90); 
     770        ProgressBar elamaPalkki = new ProgressBar(200, 20); 
     771        elamaPalkki.X = 600; 
     772        elamaPalkki.Y = Window.Height / 2 - 100; 
     773        //elamaPalkki.Angle = player.Angle + Angle.FromDegrees(90); 
    549774        elamaPalkki.BindTo(player.ElamaLaskuri); 
    550         player.Add(elamaPalkki); 
     775        Add(elamaPalkki); 
    551776 
    552777         
     
    559784        Camera.Follow(player); 
    560785    } 
     786 
     787    void OhjaaPaloja(GameObject ohjain, double palanKoko) 
     788    { 
     789        GameObject edeltava = ohjain; 
     790        player.Image = dead_dragon; 
     791        if ((player.Angle + Angle.FromDegrees(90)).GetPositiveDegrees() > 180) 
     792        { 
     793            player.Image = dead_dragonFlip; 
     794        } 
     795        player.Image = paaKuva; 
     796        if ((player.Angle + Angle.FromDegrees(90)).GetPositiveDegrees() > 180) 
     797        { 
     798            player.Image = paaKuvaFlip; 
     799        } 
     800 
     801        for (int i = 0; i < palat.Length; i++) 
     802        { 
     803            PhysicsObject pala = palat[i]; 
     804            pala.CollisionIgnoreGroup = 5; 
     805            pala.LinearDamping = 0.9; 
     806            // Palan sijainnin ja kulman päivitys. 
     807            Vector suunta = pala.Position - edeltava.Position; 
     808            if (suunta.Magnitude > palanKoko) 
     809            { 
     810                suunta = suunta.Normalize(); 
     811                pala.Position = edeltava.Position + suunta * palanKoko; 
     812            } 
     813            pala.Angle = suunta.Angle; 
     814 
     815            // Palan kuvan muuttaminen kulman suhteen. 
     816            pala.Image = hantaKuva; 
     817            if ((pala.Angle + Angle.FromDegrees(90)).GetPositiveDegrees() > 180) 
     818            { 
     819                pala.Image = hantaKuvaFlip; 
     820            } 
     821 
     822            edeltava = palat[i]; 
     823        } 
     824    } 
     825 
    561826    void näppäimet() 
    562827    { 
    563         //Keyboard.Listen(Key.W, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(1500, player.Angle)); 
    564         //Keyboard.Listen(Key.S, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(-500, player.Angle)); 
    565         //Keyboard.Listen(Key.D, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(-1000, player.Angle + Angle.FromDegrees(90))); 
    566         //Keyboard.Listen(Key.A, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(1000, player.Angle + Angle.FromDegrees(90))); 
     828       /*Keyboard.Listen(Key.W, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(1500, player.Angle)); 
     829        Keyboard.Listen(Key.S, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(-500, player.Angle)); 
     830        Keyboard.Listen(Key.D, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(-1000, player.Angle + Angle.FromDegrees(90))); 
     831        Keyboard.Listen(Key.A, ButtonState.Down, liike, "liiku", Vector.FromLengthAndAngle(1000, player.Angle + Angle.FromDegrees(90)));*/ 
    567832 
    568833        Keyboard.Listen(Key.W, ButtonState.Down, liike, "liiku", new Vector(0, 500)); 
    569         Keyboard.Listen(Key.S, ButtonState.Down, liike, "liiku", new Vector(0, -250)); 
     834        Keyboard.Listen(Key.S, ButtonState.Down, liike, "liiku", new Vector(0, -500)); 
    570835        Keyboard.Listen(Key.D, ButtonState.Down, liike, "liiku", new Vector(500, 0)); 
    571836        Keyboard.Listen(Key.A, ButtonState.Down, liike, "liiku", new Vector(-500, 0)); 
    572837 
    573         Mouse.IsCursorVisible = true; 
    574         Mouse.ListenMovement(0.0, kaanny, ""); 
     838        Mouse.IsCursorVisible = false; 
     839        //Mouse.ListenMovement(0.0, kaanny, ""); 
    575840         
    576841        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    577842    } 
    578     void kaanny(AnalogState hiirenLiike) 
    579     { 
    580         Vector suunta = Mouse.PositionOnWorld - player.AbsolutePosition; 
     843    void kaanny(Vector kaannos) 
     844    { 
     845        //Vector suunta = Mouse.PositionOnWorld - player.AbsolutePosition; 
     846        Vector suunta = kaannos; 
    581847 
    582848        if (suunta.Magnitude != 0) 
     
    588854    void liike(Vector vektori) 
    589855    { 
    590         player.Move((player.Angle + vektori.Angle + Angle.FromDegrees(-90)).GetVector() * vektori.Magnitude); 
    591     } 
    592  
    593     void LuoOvi(Vector paikka, double leveys, double korkeus, Angle Kulma) 
    594     { 
    595         ovi = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    596         ovi.Position = paikka; 
    597         Image c = LoadImage("door"); 
    598          
    599         ovi.Image = c; 
    600         ovi.Tag = "ovi"; 
    601          
    602  
    603          
    604         Add(ovi); 
    605  
    606     } 
     856        //player.Move((player.Angle + vektori.Angle + Angle.FromDegrees(-90)).GetVector() * vektori.Magnitude); 
     857        //player.Move(vektori); 
     858        player.Push(vektori * 30); 
     859        player.Angle = player.Velocity.Angle; 
     860    } 
     861 
     862     
    607863    void luoStaminup(Vector paikka, double leveys, double korkeus) 
    608864    { 
     
    644900        aseet(); 
    645901    } 
    646    /* PhysicsObject Luokolo(Vector paikka, double leveys, double korkeus, Image kuva) 
    647     { 
    648         PhysicsObject kolo = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    649         kolo.Position = paikka; 
    650          
    651         //taso.CollisionIgnoreGroup = 1; 
    652         kolo.Color = Color.Gray; 
    653          
    654  
    655         kolo.Image = kuva; 
    656         Add(kolo); 
    657         return kolo; 
    658     } 
    659     void Luokolo1(Vector paikka, double leveys, double korkeus) 
    660     { 
    661         Luokolo(paikka, leveys, korkeus, lattiakolo[0]); 
    662     } 
    663     void Luokolo2(Vector paikka, double leveys, double korkeus) 
    664     { 
    665         PhysicsObject kolo = Luokolo(paikka, leveys, korkeus, lattiakolo[3]); 
    666          
    667     } 
    668     void Luokolo3(Vector paikka, double leveys, double korkeus) 
    669     { 
    670         PhysicsObject kolo = Luokolo(paikka, leveys, korkeus, lattiakolo[4]); 
    671  
    672     } 
    673     void Luokolo4(Vector paikka, double leveys, double korkeus) 
    674     { 
    675         PhysicsObject kolo = Luokolo(paikka, leveys, korkeus, lattiakolo[5]); 
    676  
    677     } 
    678     void Luokolo5(Vector paikka, double leveys, double korkeus) 
    679     { 
    680         PhysicsObject kolo = Luokolo(paikka, leveys, korkeus, lattiakolo[2]); 
    681  
    682     }*/ 
    683902     
    684903 
Note: See TracChangeset for help on using the changeset viewer.