Ignore:
Timestamp:
2013-07-04 15:01:06 (10 years ago)
Author:
juronnbe
Message:

Talletus.

Location:
2013/27/JuhanaR/Korispeli/Korispeli/Korispeli
Files:
24 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2013/27/JuhanaR/Korispeli/Korispeli/Korispeli/Korispeli.cs

    r4413 r4435  
    1616    PhysicsObject kori; 
    1717 
    18     PlatformCharacter pelaaja1; 
     18    Pelihahmo pelaaja1; 
    1919 
    2020    Image pelaajanKuva = LoadImage("pelaaja1"); 
     
    2424    Image koripallonKuva = LoadImage("Koripallo"); 
    2525    Image koripallokorinKuva = LoadImage("Koripallokori"); 
    26  
     26    Image nuolenkuva = LoadImage("Nuoli"); 
    2727    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2828 
    2929    bool VoikoHeittaa = true; 
     30    int kenttaNro = 1; 
     31    IntMeter pelaajaLaskuri; 
    3032 
    3133    DoubleMeter heittovoima; 
     
    3335    void LuoVoimamittari() 
    3436    { 
    35         heittovoima = new DoubleMeter(70, 0, 100); 
     37        heittovoima = new DoubleMeter(0, 0, 100); 
    3638        heittovoima.MaxValue = 10; 
    3739        heittovoima.UpperLimit += delegate { heittovoima.Value = 0; }; 
    3840 
    3941        ProgressBar heittoPalkki = new ProgressBar(150, 20); 
    40         heittoPalkki.X = Screen.Left + 150; 
     42        heittoPalkki.X = Screen.Left + 15; 
    4143        heittoPalkki.Y = 0; 
    4244        heittoPalkki.Angle = Angle.RightAngle; 
     
    4648    public override void Begin() 
    4749    { 
     50        Level.Background.CreateGradient(Color.Black, Color.Orange); 
     51        Mouse.IsCursorVisible = true; 
     52        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Lopeta"); 
     53        alkuValikko.DefaultCancel = 1; 
     54        Add(alkuValikko); 
     55        alkuValikko.AddItemHandler(0, MontakoPelaajaa); 
     56        alkuValikko.AddItemHandler(1, Exit); 
     57    } 
     58 
     59    void MontakoPelaajaa() 
     60    { 
     61 
     62        pelaajaLaskuri = new IntMeter(1, 1, 10); 
     63        Label pelaajia = new Label(); 
     64        pelaajia.BindTo(pelaajaLaskuri); 
     65        Add(pelaajia); 
     66 
     67        PushButton lisaa = new PushButton("Lisää"); 
     68        lisaa.Position = pelaajia.Position + new Vector(0, -50); 
     69        lisaa.Clicked += delegate { pelaajaLaskuri.Value++; }; 
     70        Add(lisaa); 
     71 
     72        PushButton vahenna = new PushButton("Vähennä"); 
     73        vahenna.Position = lisaa.Position + new Vector(0, -50); 
     74        vahenna.Clicked += delegate { pelaajaLaskuri.Value--; }; 
     75        Add(vahenna); 
     76 
     77        PushButton aloita = new PushButton("Aloita"); 
     78        aloita.Position = vahenna.Position + new Vector(0, -50); 
     79        aloita.Clicked += AloitaPeli; 
     80        Add(aloita); 
     81 
     82    } 
     83 
     84    void AloitaPeli() 
     85    { 
     86        ClearAll(); 
     87        AloitaKentta("kentta" + kenttaNro); 
     88 
     89    } 
     90 
     91 
     92    void AloitaKentta(string kentanNimi) 
     93    { 
    4894        Gravity = new Vector(0, -1000); 
    49         for (int i = 0; i < 4; i++) 
     95        for (int i = 0; i < pelaajaLaskuri.Value; i++) 
    5096        { 
    5197            Pelaaja pelaaja = new Pelaaja(); 
    5298            pelaaja.Pisteet.UpperLimit += VaihdaKenttaa; 
    5399            pelaajat.Add(pelaaja); 
    54  
    55         } 
     100        } 
     101 
    56102        Mouse.IsCursorVisible = true; 
    57103 
    58          
    59  
    60         LuoKentta(); 
     104        LuoKentta(kentanNimi); 
     105 
     106        double aika = 2; 
     107 
     108        Vector korinNopeus =  new Vector(0, 100); 
     109        if (kenttaNro == 2) korinNopeus = new Vector(-100, 0); 
     110        if (kenttaNro == 3) korinNopeus = new Vector(-100, 100); 
     111        if (kenttaNro == 4) 
     112        { 
     113            aika = 4; 
     114 
     115        } 
     116 
     117 
     118        if (kenttaNro > 1) 
     119        { 
     120            Vector[] korinPaikat = {korinNopeus, -korinNopeus }; 
     121            kori.Velocity = korinPaikat[0]; 
     122            Timer ajastin = new Timer(); 
     123            ajastin.Start(); 
     124            ajastin.Interval = aika; 
     125            ajastin.Timeout += delegate { LiikutaKoria(korinPaikat); }; 
     126 
     127 
     128        } 
    61129        LuoNaytot(); 
     130        LuoVoimamittari(); 
    62131        LisaaNappaimet(); 
    63         LuoVoimamittari(); 
    64132        Camera.ZoomToLevel(); 
    65         
    66     } 
     133    } 
     134 
     135    void LiikutaKoria(Vector[] positions) 
     136    { 
     137        if (kori.Velocity == positions[0]) 
     138            kori.Velocity = positions[1]; 
     139        else kori.Velocity = positions[0]; 
     140    } 
     141 
    67142 
    68143    void VaihdaKenttaa() 
     
    71146        pelaajat.Clear(); 
    72147        vuorossaOlevaPelaaja = 0; 
    73         Begin(); 
    74  
     148        kenttaNro++; 
     149        if (kenttaNro > 4) Exit(); 
     150        AloitaKentta("kentta" + kenttaNro); 
    75151    } 
    76152 
     
    82158        else vuorossaOlevaPelaaja++; 
    83159        MessageDisplay.Add("Pelaajan " + (vuorossaOlevaPelaaja + 1) + " vuoro"); 
    84         pelaaja1.Position = new Vector( -200, 0); 
     160        pelaaja1.Position = new Vector(-200, 0); 
    85161    } 
    86162 
     
    89165    { 
    90166        Label ylareuna = new Label("Pisteet"); 
    91         ylareuna.Position = new Vector(Screen.Right -50, Screen.Top -50); 
    92         int i =1 ; 
     167        ylareuna.Position = new Vector(Screen.Right - 50, Screen.Top - 50); 
     168        int i = 1; 
    93169        foreach (var item in pelaajat) 
    94170        { 
     
    96172            pisteet.BindTo(item.Pisteet); 
    97173            ylareuna.Add(pisteet); 
    98             pisteet.Position += new Vector(0, -i++ * 20);  
     174            pisteet.Position += new Vector(0, -i++ * 20); 
    99175        } 
    100176        Add(ylareuna); 
     
    102178 
    103179 
    104     void LuoKentta() 
    105     { 
    106         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     180    void LuoKentta(string kentanNimi) 
     181    { 
     182        TileMap kentta = TileMap.FromLevelAsset(kentanNimi); 
    107183        kentta.SetTileMethod('V', LisaaVastustaja); 
    108184        kentta.SetTileMethod('#', LisaaTaso); 
     
    114190        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
    115191        ylaReuna.Tag = "reuna"; 
     192     
     193 
    116194        Level.CreateHorizontalBorders(0, false, Color.Red); 
    117  
     195        Level.Background.CreateGradient(Color.Black, Color.Orange); 
    118196        Level.Background.Image = LoadImage("Koripallokenttä"); 
    119         Level.Background.FitToLevel();         
     197        Level.Background.FitToLevel(); 
    120198    } 
    121199 
    122200    void LisaaTuomari(Vector paikka, double leveys, double korkeus) 
    123201    { 
    124         PhysicsObject Tuomari = PhysicsObject.CreateStaticObject(leveys*1.2, 1.5*korkeus); 
    125       Tuomari.IgnoresCollisionResponse = true; 
    126       Tuomari.Position = paikka; 
    127       Tuomari.Y += 10; 
    128       Tuomari.Image = tuomarinKuva; 
    129       Add(Tuomari); 
     202        PhysicsObject Tuomari = PhysicsObject.CreateStaticObject(leveys * 1.2, 1.5 * korkeus); 
     203        Tuomari.IgnoresCollisionResponse = true; 
     204        Tuomari.Position = paikka; 
     205        Tuomari.Y += 10; 
     206        Tuomari.Image = tuomarinKuva; 
     207        Add(Tuomari); 
    130208    } 
    131209 
     
    140218    void LisaaKori(Vector paikka, double leveys, double korkeus) 
    141219    { 
    142         kori = PhysicsObject.CreateStaticObject(leveys*1.2, korkeus*1.2); 
     220        kori = PhysicsObject.CreateStaticObject(leveys * 1.2, korkeus * 1.2); 
    143221        kori.IgnoresCollisionResponse = true; 
    144222        kori.Position = paikka; 
     
    150228    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    151229    { 
    152         pelaaja1 = new PlatformCharacter(leveys, korkeus*1.5); 
     230        pelaaja1 = new Pelihahmo(leveys, korkeus * 1.5); 
    153231        pelaaja1.Position = paikka; 
    154232        pelaaja1.Mass = 4.0; 
    155233        pelaaja1.Image = pelaajanKuva; 
    156234        pelaaja1.CollisionIgnoreGroup = 1; 
    157         AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
     235        pelaaja1.KulmaNaytin = new GameObject(LoadImage("Nuoli")); 
     236        pelaaja1.KulmanayttimenEtaisyys = 50; 
     237        Add(pelaaja1.KulmaNaytin); 
     238        MuutaHeittokulmaa(new AnalogState(), pelaaja1); 
     239         
    158240        Add(pelaaja1); 
    159241    } 
     
    161243    void LisaaVastustaja(Vector paikka, double leveys, double korkeus) 
    162244    { 
    163         PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus*2); 
     245        PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus * 2); 
    164246        Vastustaja.Position = paikka; 
    165247        Vastustaja.Mass = 1000.0; 
     
    169251        hyppyAjastin.Start(); 
    170252        hyppyAjastin.Interval = 2; 
    171         hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump((kori.Y -Level.Bottom) * 4); }; 
     253        hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump((kori.Y - Level.Bottom) * 4); }; 
    172254    } 
    173255 
    174256    PhysicsObject LisaaPallo() 
    175257    { 
    176         PhysicsObject Pallo = new PhysicsObject (20,20); 
     258        PhysicsObject Pallo = new PhysicsObject(20, 20); 
    177259        Pallo.Shape = Shape.Circle; 
    178260        Pallo.Image = koripallonKuva; 
     
    193275        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
    194276        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    195  
    196         Mouse.Listen(MouseButton.Left, ButtonState.Released, HeitaPallo, ""); 
     277        Mouse.Listen(MouseButton.Left, ButtonState.Released, HeitaPallo, "Heitä pallo", pelaaja1); 
     278        Mouse.Listen(MouseButton.Left, ButtonState.Down, heittovoima.AddValue, null, 0.20); 
     279        Mouse.ListenMovement(0.1, MuutaHeittokulmaa, null, pelaaja1); 
    197280 
    198281        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    199  
    200282        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus); 
    201283        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus); 
    202         ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    203  
    204         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    205     } 
    206  
    207     void HeitaPallo() 
    208     { 
    209         if (!VoikoHeittaa) 
    210             return; 
     284        ControllerOne.Listen(Button.X, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     285        ControllerOne.Listen(Button.A, ButtonState.Down, heittovoima.AddValue, null, 0.20); 
     286        ControllerOne.Listen(Button.A, ButtonState.Released, HeitaPallo, "Heitä Pallo", pelaaja1); 
     287        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, MuutaHeittokulmaa, null, pelaaja1); 
     288    } 
     289 
     290    void MuutaHeittokulmaa(AnalogState an, Pelihahmo pelihahmo) 
     291    { 
     292        Angle heittokulma = (Mouse.PositionOnWorld - pelihahmo.Position).Angle; 
     293        pelihahmo.KulmaNaytin.Position = pelihahmo.Position + Vector.FromLengthAndAngle(pelihahmo.KulmanayttimenEtaisyys, (Mouse.PositionOnWorld - pelihahmo.Position).Angle); 
     294        pelihahmo.KulmaNaytin.Angle = heittokulma; 
     295        pelihahmo.Heittokulma = heittokulma; 
     296        if (an.StateVector.Magnitude < 0.1) return; 
     297        heittokulma = an.StateVector.Angle; 
     298        pelihahmo.KulmaNaytin.Position = pelihahmo.Position + Vector.FromLengthAndAngle(pelihahmo.KulmanayttimenEtaisyys, an.StateVector.Angle); 
     299        pelihahmo.KulmaNaytin.Angle = heittokulma; 
     300        pelihahmo.Heittokulma = heittokulma; 
     301    } 
     302 
     303    void HeitaPallo(Pelihahmo pelihahmo) 
     304    { 
     305        if (!VoikoHeittaa) return; 
    211306        VoikoHeittaa = false; 
    212        PhysicsObject pallo = LisaaPallo(); 
    213          
    214         Vector suunta = (Mouse.PositionOnWorld - pallo.Position).Normalize(); 
    215         pallo.Hit(suunta * 1500); 
    216  
     307        PhysicsObject pallo = LisaaPallo(); 
     308        
     309        Vector suunta = Vector.FromLengthAndAngle(1, pelihahmo.Heittokulma); 
     310        pallo.Hit(suunta * 150 * heittovoima.Value); 
     311        heittovoima.Value = 0; 
    217312        AddCollisionHandler(pallo, PalloOsuu); 
    218313    } 
     314 
    219315 
    220316    void PalloOsuu(PhysicsObject pallo, PhysicsObject kohde) 
     
    222318        if ("reuna".Equals(kohde.Tag)) return; 
    223319        pallo.Destroy(); 
    224         if (kohde.Tag.Equals("kori")) 
    225             pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 
     320        if (kohde.Tag.Equals("kori")) pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 
    226321        pallo.Destroyed += delegate { VaihdaPelaajaaVuorossa(); }; 
    227  
    228322        Timer.SingleShot(1.0, delegate { VoikoHeittaa = true; }); 
    229  
    230     } 
    231  
    232  
    233     void Liikuta(PlatformCharacter hahmo, double nopeus) 
    234     { 
    235         if (hahmo.Position.X >= 200 && nopeus > 0) 
     323    } 
     324 
     325 
     326    void Liikuta(Pelihahmo hahmo, double nopeus) 
     327    { 
     328        if (hahmo.Position.X >= -200 && nopeus > 0) 
    236329        { 
    237330            hahmo.Velocity = new Vector(0, hahmo.Velocity.Y); 
    238331            return; 
    239332        } 
    240             hahmo.Walk(nopeus); 
    241     } 
    242  
    243     void Hyppaa(PlatformCharacter hahmo, double nopeus) 
     333        hahmo.Walk(nopeus); 
     334    } 
     335 
     336    void Hyppaa(Pelihahmo hahmo, double nopeus) 
    244337    { 
    245338        hahmo.Jump(nopeus); 
    246339    } 
    247340 
    248     void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) 
    249     { 
    250         maaliAani.Play(); 
    251         MessageDisplay.Add("Heitit korin!"); 
    252         pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 
    253         VaihdaPelaajaaVuorossa(); 
    254         //tahti.Destroy(); 
    255     } 
     341    
    256342} 
    257343 
     
    263349    public Pelaaja() 
    264350    { 
    265         pisteet = new IntMeter(0, 0, 10); 
     351        pisteet = new IntMeter(0, 0, 3); 
    266352    } 
    267353 
  • 2013/27/JuhanaR/Korispeli/Korispeli/Korispeli/Korispeli.csproj

    r4369 r4435  
    1919    <ApplicationIcon>Game.ico</ApplicationIcon> 
    2020    <Thumbnail>GameThumbnail.png</Thumbnail> 
     21    <IsWebBootstrapper>false</IsWebBootstrapper> 
     22    <ReferencePath>$(registry:HKEY_LOCAL_MACHINE\Software\Jypeli@Install_Dir)\lib\x86</ReferencePath> 
    2123    <PublishUrl>publish\</PublishUrl> 
    2224    <Install>true</Install> 
     
    2931    <UpdateRequired>false</UpdateRequired> 
    3032    <MapFileExtensions>true</MapFileExtensions> 
    31     <ApplicationRevision>0</ApplicationRevision> 
     33    <ApplicationRevision>1</ApplicationRevision> 
    3234    <ApplicationVersion>1.0.0.%2a</ApplicationVersion> 
    33     <IsWebBootstrapper>false</IsWebBootstrapper> 
    3435    <UseApplicationTrust>false</UseApplicationTrust> 
     36    <PublishWizardCompleted>true</PublishWizardCompleted> 
    3537    <BootstrapperEnabled>true</BootstrapperEnabled> 
    36     <ReferencePath>$(registry:HKEY_LOCAL_MACHINE\Software\Jypeli@Install_Dir)\lib\x86</ReferencePath> 
    3738  </PropertyGroup> 
    3839  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 
     
    6061    <PlatformTarget>x86</PlatformTarget> 
    6162    <XnaCompressContent>true</XnaCompressContent> 
     63  </PropertyGroup> 
     64  <PropertyGroup> 
     65    <ManifestCertificateThumbprint>7EC0F7A4770761DACDE1BAEB48870B0E76273216</ManifestCertificateThumbprint> 
     66  </PropertyGroup> 
     67  <PropertyGroup> 
     68    <ManifestKeyFile>Korispeli_TemporaryKey.pfx</ManifestKeyFile> 
     69  </PropertyGroup> 
     70  <PropertyGroup> 
     71    <GenerateManifests>true</GenerateManifests> 
     72  </PropertyGroup> 
     73  <PropertyGroup> 
     74    <SignManifests>true</SignManifests> 
    6275  </PropertyGroup> 
    6376  <ItemGroup> 
     
    113126    <Compile Include="Ohjelma.cs" /> 
    114127    <Compile Include="Korispeli.cs" /> 
     128    <Compile Include="Pelihahmo.cs" /> 
    115129    <Compile Include="Properties\AssemblyInfo.cs" /> 
    116130  </ItemGroup> 
     
    152166    </BootstrapperPackage> 
    153167  </ItemGroup> 
     168  <ItemGroup> 
     169    <None Include="Korispeli_TemporaryKey.pfx" /> 
     170  </ItemGroup> 
    154171  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
    155172  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" /> 
Note: See TracChangeset for help on using the changeset viewer.