Changeset 4636 for 2013


Ignore:
Timestamp:
2013-07-24 15:04:22 (6 years ago)
Author:
seleung
Message:

Talletus.

Location:
2013/30/SenkoL/FysiikkaPeli1/FysiikkaPeli1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/SenkoL/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs

    r4578 r4636  
    1111    Image pelaajankuva = LoadImage("pelaaja"); 
    1212    Image vihollisenkuva= LoadImage("vihollinen"); 
    13      
     13    PhysicsObject pelaaja; 
     14    PhysicsObject vihollinen; 
     15    AssaultRifle pelaajan1ase; 
     16    IntMeter pisteLaskuri; 
    1417    public override void Begin() 
    1518    { 
     19        Mouse.IsCursorVisible = true; 
     20 
    1621        luokentta(); 
    17          
    18          
     22        LuoPistelaskuri(); 
    1923 
    20         Camera.ZoomToLevel(); 
     24 
     25        Camera.Zoom(2.5); 
     26        Camera.Follow(pelaaja); 
    2127        
    2228        // TODO: Kirjoita ohjelmakoodisi tähän 
     
    3036        ruudut.SetTileMethod(Color.Black, luotaso); 
    3137        ruudut.SetTileMethod("0026FF", luopelaaja); 
    32         ruudut.SetTileMethod("FF0000", luovihollinen); 
     38        ruudut.SetTileMethod("FF0000", lisaavihollinen); 
    3339        ruudut.Execute(20, 20); 
     40        Level.BackgroundColor = Color.Brown; 
     41         
     42    } 
     43    void lisaavihollinen(Vector paikka, double leveys, double korkeus) 
     44    { 
     45        luovihollinen(paikka, leveys, korkeus); 
     46        Timer ajastin = new Timer(); 
     47        ajastin.Interval = RandomGen.NextInt(5, 60); 
     48        ajastin.Timeout += delegate { luovihollinen(paikka, leveys, korkeus);}; 
     49        ajastin.Start(); 
     50 
     51 
    3452    } 
    3553    void luotaso(Vector paikka, double leveys, double korkeus) 
    3654    { 
    3755        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     56        taso.Restitution = 0.0; 
    3857        taso.Color = Color.Black; 
    3958        taso.Position = paikka; 
     
    4261    void luopelaaja(Vector paikka, double leveys, double korkeus) 
    4362    { 
    44         PhysicsObject pelaaja = new PhysicsObject(leveys, korkeus); 
    45         pelaaja.Color = Color.Red; 
     63        pelaaja = new PhysicsObject(leveys, korkeus); 
     64        pelaaja.Restitution = 0.0; 
     65        pelaaja.LinearDamping = 0.9; 
    4666        pelaaja.Position = paikka; 
     67        pelaaja.CanRotate = false; 
     68        pelaaja.CollisionIgnoreGroup = 2; 
    4769        pelaaja.Image = pelaajankuva; 
     70        pelaaja.Tag = "player"; 
    4871        Add(pelaaja); 
     72        pelaajan1ase = new AssaultRifle(30, 10); 
     73        pelaajan1ase.ProjectileCollision = CollisionHandler.DestroyObject; 
     74        Add(pelaajan1ase); 
     75 
     76        pelaajan1ase.Ammo.LowerLimit += delegate { AloitaLataus(pelaajan1ase); }; 
     77         
     78 
     79        //pelaaja.Add(pelaajan1ase); 
     80        //pelaajan1ase.Position += new Vector(0, 7); 
     81        //Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 
     82        Mouse.Listen(MouseButton.Left, ButtonState.Down, ammuaseella,"ammu",pelaajan1ase); 
     83        Keyboard.Listen(Key.A, ButtonState.Down, liikutapelaaja, null, new Vector(-500, 0)); 
     84        Keyboard.Listen(Key.D, ButtonState.Down, liikutapelaaja, null, new Vector(500, 0)); 
     85        Keyboard.Listen(Key.W, ButtonState.Down, liikutapelaaja, null, new Vector(0, 500)); 
     86        Keyboard.Listen(Key.S, ButtonState.Down, liikutapelaaja, null, new Vector(0, -500)); 
     87 
     88    } 
     89 
     90    void AloitaLataus(AssaultRifle ase) 
     91    { 
     92        Timer ajastin = new Timer(); 
     93        ajastin.Interval = 10; 
     94        ajastin.Timeout += delegate { ase.Ammo.Value = 100; }; 
     95        ajastin.Start(1); 
     96    } 
     97 
     98 
     99 
     100    protected override void Update(Time time) 
     101    { 
     102        if (pelaaja != null && pelaajan1ase != null) 
     103        { 
     104            Vector suunta = (Mouse.PositionOnWorld - pelaaja.AbsolutePosition).Normalize(); 
     105            pelaajan1ase.Angle = suunta.Angle; 
     106            pelaajan1ase.Position = pelaaja.Position + suunta * 10; 
     107 
     108 
     109        } 
     110        base.Update(time); 
     111         
     112    } 
     113 
     114    void ammusosui(PhysicsObject ammus, PhysicsObject kohde) 
     115    { 
     116 
     117        kohde.Destroy(); 
     118 
     119    } 
     120    void ammuaseella(AssaultRifle ase) 
     121    { 
     122        PhysicsObject ammus = ase.Shoot(); 
     123         
     124        if (ammus != null) 
     125        { 
     126 
     127            ammus.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup; 
     128            AddCollisionHandler(ammus, "pahis", ammusosui); 
     129        } 
     130    } 
     131    
     132    void liikutapelaaja(Vector vektori) 
     133    { 
     134        pelaaja.Push(vektori); 
    49135    } 
    50136    void luovihollinen(Vector paikka, double leveys, double korkeus) 
    51137    { 
    52         PhysicsObject vihollinen = new PhysicsObject(leveys, korkeus); 
    53         vihollinen.Color = Color.Yellow; 
     138        vihollinen = new PhysicsObject(leveys, korkeus); 
     139        vihollinen.Restitution = 0.0; 
     140        vihollinen.LinearDamping = 0.5; 
    54141        vihollinen.Position = paikka; 
    55142        vihollinen.Image = vihollisenkuva; 
     143        vihollinen.Tag = "pahis"; 
     144        FollowerBrain seuraajanAivot = new FollowerBrain("player"); 
     145        vihollinen.Brain = seuraajanAivot; 
     146        seuraajanAivot.Speed = 150; 
     147        vihollinen.Destroyed += lisaapisteita; 
    56148        Add(vihollinen); 
     149 
     150 
    57151    } 
     152    void LuoPistelaskuri() 
     153    { 
     154        pisteLaskuri = new IntMeter(0); 
     155 
     156        Label pisteNaytto = new Label(); 
     157        pisteNaytto.X = Screen.Left + 100; 
     158        pisteNaytto.Y = Screen.Top - 100; 
     159        pisteNaytto.TextColor = Color.Black; 
     160        pisteNaytto.Color = Color.White; 
     161 
     162        pisteNaytto.BindTo(pisteLaskuri); 
     163        Add(pisteNaytto); 
     164    } 
     165    void lisaapisteita() 
     166    { 
     167        pisteLaskuri.Value += 1; 
     168    } 
     169 
     170    
    58171} 
Note: See TracChangeset for help on using the changeset viewer.