Ignore:
Timestamp:
2016-11-19 14:45:43 (3 years ago)
Author:
sieerinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/koodauskerho/TaneliL/SimoR/Tasohyppelypeli/Tasohyppelypeli/Tasohyppelypeli/Tasohyppelypeli.cs

    r8334 r8359  
    1616    const int RUUDUN_KOKO = 40; 
    1717 
     18    int kenttaNro = 1; 
     19    IntMeter keratytTahdet = new IntMeter(0); 
     20 
    1821    PlatformCharacter pelaaja1; 
    1922    PlatformCharacter vihu; 
    2023 
     24    GameObject cursori; 
     25 
     26    //AssaultRifle pelaajan1ase; 
     27 
    2128    Image pelaajanKuva = LoadImage("norsu"); 
    2229    Image tahtiKuva = LoadImage("tahti"); 
     30    Image palikkaKuva = LoadImage("Palikka"); 
    2331 
    2432    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     
    2735    List<PhysicsObject> tahdet = new List<PhysicsObject>(); 
    2836    List<PhysicsObject> vihut = new List<PhysicsObject>(); 
     37    List<PhysicsObject> ammukset = new List<PhysicsObject>(); 
    2938 
    3039    public override void Begin() 
    3140    { 
    32         //Gravity = new Vector(0, -1000); 
    33  
    34         LuoKentta(); 
     41        SeuraavaKentta(); 
    3542        LisaaNappaimet(); 
    36  
     43        Pyoritys(); 
     44 
     45        IsMouseVisible = false; 
     46 
     47        Timer.SingleShot(0.1, delegate 
     48        { 
    3749        Window.Width = 1920; 
    3850        Window.Height = 1080; 
    3951 
    40         //Camera.Follow(pelaaja1); 
    41         //Camera.ZoomFactor = 1.2; 
    42         //Camera.StayInLevel = true; 
    43     } 
    44  
    45     void LuoKentta() 
    46     { 
    47         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     52            Window.X = (int)Screen.Width / 2; 
     53            Window.Y = (int)Screen.Height / 2; 
     54        }); 
     55 
     56        keratytTahdet.Changed += TarkistaTahdet; 
     57    } 
     58 
     59    void SeuraavaKentta() 
     60    { 
     61        ClearAll(); 
     62        if (kenttaNro == 1) LuoKentta("kentta1"); 
     63        else if (kenttaNro == 2) LuoKentta("kentta2"); 
     64    } 
     65 
     66    void LuoKentta(string kenttaTiedostonNimi) 
     67    { 
     68        TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi); 
    4869        kentta.SetTileMethod('#', LisaaTaso); 
    4970        kentta.SetTileMethod('*', LisaaTahti); 
     
    6687        taso.Position = paikka; 
    6788        taso.Color = Jypeli.Color.Green; 
     89        taso.Image = palikkaKuva; 
    6890        taso.IsVisible = false; 
    6991        Add(taso); 
     
    90112        vihu.Mass = 4.0; 
    91113        vihu.Image = pelaajanKuva; 
     114        vihu.Tag = "vihu"; 
    92115        vihu.IsVisible = false; 
    93116 
     
    95118        vihunAivot.WanderRadius = 2000; 
    96119        vihu.Brain = vihunAivot; 
    97  
    98         AddCollisionHandler(vihu, "pelaaja", TormaaPelaajaan); 
     120  
    99121        Add(vihu); 
    100122        vihut.Add(vihu); 
     
    109131        pelaaja1.IsVisible = false; 
    110132        pelaaja1.Tag = "pelaaja"; 
    111         AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
     133        AddCollisionHandler(pelaaja1, TormaaPelaajaan); 
    112134        Add(pelaaja1); 
     135 
     136        cursori = new GameObject(30, 30); 
     137        cursori.IsVisible = false; 
     138        Add(cursori); 
     139 
     140        pelaaja1.Weapon = new AssaultRifle(30, 30); 
     141        pelaaja1.Weapon.IsVisible = false; 
     142        pelaaja1.Weapon.ProjectileCollision = AmmusOsui; 
     143         
    113144    } 
    114145 
     
    121152        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus); 
    122153        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     154        Mouse.Listen(MouseButton.Left, ButtonState.Down, Ammu, "Pelaaja ampuu", pelaaja1); 
     155 
     156        Mouse.ListenMovement(0, LiikutaTahtainta, "Tahtain liikkuu"); 
    123157 
    124158        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    141175    } 
    142176 
    143     void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) 
    144     { 
    145         maaliAani.Play(); 
    146         MessageDisplay.Add("Keräsit tähden!"); 
    147         tahti.Destroy(); 
    148     } 
    149  
    150     void TormaaPelaajaan(PhysicsObject vihu, PhysicsObject pelaaja1) 
    151     { 
    152         ClearAll(); 
     177    void LiikutaTahtainta(AnalogState hiiri) 
     178    { 
     179        cursori.Position += hiiri.MouseMovement; 
     180    } 
     181 
     182    void Ammu(PlatformCharacter hahmo) 
     183    { 
     184        PhysicsObject ammus = hahmo.Weapon.Shoot(); 
     185 
     186        if (ammus != null) 
     187        { 
     188            ammukset.Add(ammus); 
     189            ammus.X -= 20; 
     190            ammus.IsVisible = false; 
     191            ammus.Destroyed += () => ammukset.Remove(ammus); 
     192            ammus.Velocity = (cursori.Position - pelaaja1.Position).Normalize() * 300; 
     193        } 
     194    } 
     195 
     196    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     197    { 
     198        ammus.Destroy(); 
     199    } 
     200 
     201    void TormaaPelaajaan(PhysicsObject pelaaja1, PhysicsObject kohde) 
     202    { 
     203        if (kohde.Tag == "vihu") 
     204        { 
     205            ClearAll(); 
     206            Nollaus(); 
     207        } 
     208 
     209        else if (kohde.Tag == "tahti") 
     210        { 
     211            maaliAani.Play(); 
     212            MessageDisplay.Add("Keräsit tähden!"); 
     213            keratytTahdet.Value += 1; 
     214            kohde.Destroy(); 
     215        } 
     216    } 
     217 
     218    void TarkistaTahdet(int a, int b) 
     219    { 
     220        if(keratytTahdet == 10) 
     221        { 
     222            kenttaNro = 2; 
     223            ClearAll(); 
     224            Nollaus(); 
     225        } 
     226    } 
     227 
     228    void Nollaus() 
     229    { 
    153230        tahdet.Clear(); 
    154231        tasot.Clear(); 
     
    165242        light = false; 
    166243 
    167         LuoKentta(); 
     244        SeuraavaKentta(); 
    168245        LisaaNappaimet(); 
    169246        Pyoritys(); 
    170247    } 
    171  
     248     
    172249    /********************************************************/ 
    173250    /****************       WARNING!       ******************/ 
     
    182259    Model tahtiModel; 
    183260    Model vihuModel; 
     261    Model ammusModel; 
    184262 
    185263    Texture2D norsuTexture; 
    186     Texture2D vihreaTexture; 
     264    Texture2D palikkaTexture; 
    187265    Texture2D tahtiTexture; 
    188266    Texture2D vihuTexture; 
     
    227305        tahtiModel = Content.Load<Model>("tahti2"); 
    228306        vihuModel = Content.Load<Model>("vihu"); 
     307        ammusModel = Content.Load<Model>("Pallo"); 
    229308        norsuTexture = Content.Load<Texture2D>("norsumusta"); 
    230         vihreaTexture = Content.Load<Texture2D>("vihrea"); 
     309        palikkaTexture = Content.Load<Texture2D>("Palikka"); 
    231310        tahtiTexture = Content.Load<Texture2D>("tahti"); 
    232311        vihuTexture = Content.Load<Texture2D>("norsumusta"); 
     
    243322        }, null); 
    244323 
    245         Keyboard.Listen(Key.F2, ButtonState.Down, () => { norsuRotation += 0.3f; }, null); 
     324        Keyboard.Listen(Key.F2, ButtonState.Down, () => { norsuRotation += 0.2f; }, null); 
    246325 
    247326        // A ja D pyörittää maailmaa. 
     
    278357        { 
    279358            DrawModel(norsuModel, norsuTexture, pelaaja1.Position, norsuRotation); 
     359            DrawModel(norsuModel, norsuTexture, cursori.Position, norsuRotation); 
    280360        } 
    281361 
    282362        foreach (var taso in tasot) 
    283363        { 
    284             DrawModel(tasoModel, vihreaTexture, taso.Position, 0f); 
     364            DrawModel(tasoModel, palikkaTexture, taso.Position, 0f); 
    285365        } 
    286366        foreach (var tahti in tahdet) 
     
    291371        { 
    292372            DrawModel(vihuModel, vihuTexture, vihu.Position, 0f); 
     373        } 
     374        foreach (var ammus in ammukset) 
     375        { 
     376            DrawModel(ammusModel, norsuTexture, ammus.Position, 0f); 
    293377        } 
    294378    } 
     
    306390        var ortMat = Matrix.CreateOrthographic(25f * aspectRatio, 25f, 0.1f, 100f); 
    307391        var finalMat = Matrix.Lerp(ortMat, perspMat, matrixLerp); 
     392         
    308393 
    309394        foreach (ModelMesh mesh in model.Meshes) 
Note: See TracChangeset for help on using the changeset viewer.