Changeset 1469 for 2010


Ignore:
Timestamp:
2010-07-30 13:06:23 (9 years ago)
Author:
oteimatt
Message:

valmis

Location:
2010/30/oteimatt/taistelu-jaska/taistelu-jaska
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/oteimatt/taistelu-jaska/taistelu-jaska/POHJA.txt

    r1417 r1469  
    1212=                                  =====           = 
    1313=                                                  = 
     14=  V                                            V  = 
     15=        T                                         = 
    1416=                                                  = 
    15 =       T                                          = 
    16 =V                                                V= 
    1717==================================================== 
  • 2010/30/oteimatt/taistelu-jaska/taistelu-jaska/Peli.cs

    r1417 r1469  
    77class Tasohyppely : PhysicsGame 
    88{ 
     9    const int vihollisenElamat = 2; 
     10 
    911    const double nopeus = 200; 
    1012    const double hyppyVoima = 4000; 
     
    1315    const int ruudunKorkeus = 50; 
    1416 
     17    bool jaskaLyo; 
    1518    PlatformCharacter pelaaja1; 
    1619    //PlatformCharacter miniführer; 
     
    1922    Image[] jaskaKuvatPeilattu; 
    2023 
     24    Image[] miniführerkuvatL = LoadImages("mini führerl1", "mini führerl2"); 
     25    Image[] miniführerkuvatLpeilattu; 
    2126    Image[] miniführerkuvat = LoadImages( "mini führer juoksu 1", "mini führer juoksu 2"); 
    2227    Image[] miniführerkuvatpeilattu; 
     
    5055        ajastin.Start(); 
    5156 
     57        
     58 
    5259        Camera.Follow(pelaaja1); 
    5360        Camera.ZoomFactor = 1.2; 
     
    5966        jaskaKuvatPeilattu = Image.Mirror(jaskaKuvat); 
    6067        jaskaHyokkaaPeilattu = Image.Mirror(jaskaHyokkaa); 
     68        miniführerkuvatpeilattu = Image.Mirror(miniführerkuvat); 
     69        miniführerkuvatLpeilattu = Image.Mirror(miniführerkuvatL); 
     70 
    6171    } 
    6272     
     
    8595        if (RandomGen.NextBool()) 
    8696        { 
    87             vihollinen.Position = new Vector(Level.Right - 50, -200); 
     97            vihollinen.Position = new Vector(Level.Right - 100, -200); 
    8898        } 
    8999        else 
    90100        { 
    91             vihollinen.Position = new Vector(Level.Left + 50, -200); 
     101            vihollinen.Position = new Vector(Level.Left + 100, -200); 
    92102        } 
    93103        Add(vihollinen); 
     
    97107    PhysicsObject luoMiniFührer() 
    98108    { 
    99         PlatformCharacter miniführer = new PlatformCharacter(50, 90, Shapes.Circle); 
     109        PlatformCharacter miniführer = new PlatformCharacter(128, 128, Shapes.Circle); 
    100110        miniführer.Mass = 4.0; 
    101111        miniführer.Color = Color.Black; 
    102         miniführer.RightIdleAnimation = new Animation(LoadImages("mini führer juoksu 1", "mini führer juoksu 2")); 
    103         miniführer.RightWalkingAnimation = new Animation(miniführerkuvat); 
    104         miniführerkuvatpeilattu = Image.Mirror(miniführerkuvat); 
    105         miniführer.LeftWalkingAnimation = new Animation(miniführerkuvatpeilattu); 
     112        miniführer.RightIdleAnimation = new Animation(miniführerkuvat); 
     113        //miniführer.RightWalkingAnimation = new Animation(miniführerkuvat); 
     114 
     115        miniführer.LeftIdleAnimation = new Animation(miniführerkuvatpeilattu); 
     116        //miniführer.LeftWalkingAnimation = new Animation(miniführerkuvatpeilattu); 
    106117 
    107118        FollowerBrain seuraajanAivot = new FollowerBrain(); 
    108119        seuraajanAivot.Target = pelaaja1; 
    109120        miniführer.Brain = seuraajanAivot; 
     121        miniführer.Tag = vihollisenElamat; 
    110122         
    111123        Timer aikaLaskuri = new Timer(); 
     
    121133    {  
    122134        PlatformCharacter vihollinen = ((PlatformCharacter)ajastin.Tag); 
    123         if (vihollinen.Velocity.X < 0) vihollinen.Animation = vihollinen.LeftWalkingAnimation; 
    124         if (vihollinen.Velocity.X > 0) vihollinen.Animation = vihollinen.RightWalkingAnimation; 
    125         if (Vector.Distance(vihollinen.Position 
    126  
    127     } 
    128  
     135 
     136        Vector etaisyys = new Vector(pelaaja1.X - vihollinen.X, pelaaja1.Y - vihollinen.Y); 
     137 
     138        if (etaisyys.X < 0 && etaisyys.Magnitude < 150) 
     139        { 
     140            vihollinenLyo(vihollinen, miniführerkuvatLpeilattu); 
     141        } 
     142        else if (etaisyys.X > 0 && etaisyys.Magnitude < 150) 
     143        { 
     144            vihollinenLyo(vihollinen, miniführerkuvatL); 
     145        } 
     146        else if (etaisyys.X > 0 && etaisyys.Magnitude > 150) 
     147        { 
     148            vihollinen.Animation = new Animation(miniführerkuvat); 
     149            vihollinen.Animation.Start(); 
     150        } 
     151        else if (etaisyys.X < 0 && etaisyys.Magnitude > 150) 
     152        { 
     153            vihollinen.Animation = new Animation(miniführerkuvatpeilattu); 
     154            vihollinen.Animation.Start(); 
     155        } 
     156    } 
     157 
     158    void vihollinenLyo(PlatformCharacter vihu, Image[] lyontiKuvat) 
     159    { 
     160        vihu.Animation = new Animation(lyontiKuvat); 
     161        vihu.Animation.Start(1); 
     162    } 
    129163 
    130164    PhysicsObject LuoTaisteluJaska() 
    131165    { 
    132166        pelaaja1 = new PlatformCharacter(128, 128, Shapes.Circle); 
    133  
     167        jaskaLyo = false; 
    134168        // Animaation asettaminen ei toimi jos pelaaja1 on alustettu näin 
    135169         //pelaaja1 = new PlatformCharacter(128, 128, Shapes.Rectangle); 
     
    144178        pelaaja1.LeftWalkingAnimation = new Animation(jaskaKuvatPeilattu); 
    145179        pelaaja1.LeftWalkingAnimation.FPS = 5; 
     180 
     181        AddCollisionHandler(pelaaja1, JaskaOsuuJohonkin); 
     182 
    146183        return (PhysicsObject)pelaaja1; 
    147184    } 
    148  
    149185 
    150186 
     
    168204        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus); 
    169205        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima); 
    170         Keyboard.Listen(Key.Space, ButtonState.Pressed, lyo, "Lyö", pelaaja1); 
     206        Keyboard.Listen(Key.Space, ButtonState.Pressed, lyo, "Lyö", pelaaja1, jaskaHyokkaaPeilattu, jaskaHyokkaa); 
    171207 
    172208        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    177213    } 
    178214 
    179     void lyo(PlatformCharacter hahmo) 
     215    void lyo(PlatformCharacter hahmo, Image[] kuvatVasemmalle, Image[] kuvatOikealle) 
    180216    { 
    181217        if (hahmo.FacingDirection == Direction.Left) 
    182218        { 
    183             hahmo.Animation = new Animation(jaskaHyokkaaPeilattu); 
     219            hahmo.Animation = new Animation(kuvatVasemmalle); 
    184220        } 
    185221        if (hahmo.FacingDirection == Direction.Right) 
    186222        { 
    187             hahmo.Animation = new Animation(jaskaHyokkaa); 
     223            hahmo.Animation = new Animation(kuvatOikealle); 
    188224        } 
    189225 
    190226        hahmo.Animation.Start(1); 
     227 
     228        jaskaLyo = true; 
     229 
     230        Timer lyontiLoppuu = new Timer(); 
     231        lyontiLoppuu.Interval = 0.3; 
     232        lyontiLoppuu.Trigger += JaskanLyontiLoppuu; 
     233        lyontiLoppuu.Start(1); 
     234    } 
     235 
     236    void JaskanLyontiLoppuu(Timer ajastin) 
     237    { 
     238        jaskaLyo = false; 
    191239    } 
    192240 
     
    200248        hahmo.Jump(voima); 
    201249    } 
     250 
     251    void JaskaOsuuJohonkin(PhysicsObject jaska, PhysicsObject kohde) 
     252    { 
     253        if (jaskaLyo) 
     254        { 
     255            if (kohde is PlatformCharacter) 
     256            { 
     257                int hipareita = (int)kohde.Tag; 
     258                hipareita--; 
     259                kohde.Tag = hipareita; 
     260                if (hipareita == 0) 
     261                    kohde.Destroy(); 
     262            } 
     263        } 
     264    } 
    202265} 
Note: See TracChangeset for help on using the changeset viewer.