Changeset 160 for elias_y


Ignore:
Timestamp:
2009-07-24 10:51:04 (10 years ago)
Author:
elalylon
Message:

Tein Ammuntapelin valmiiksi!!!

Location:
elias_y/Ammuntapeli09
Files:
2 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • elias_y/Ammuntapeli09/Content/Content.contentproj

    r106 r160  
    4141    </Compile> 
    4242  </ItemGroup> 
     43  <ItemGroup> 
     44    <Compile Include="sounds\laser.wav"> 
     45      <Name>laser</Name> 
     46      <Importer>WavImporter</Importer> 
     47      <Processor>SoundEffectProcessor</Processor> 
     48    </Compile> 
     49  </ItemGroup> 
    4350</Project> 
  • elias_y/Ammuntapeli09/Peli.cs

    r149 r160  
    2525        bool Pelikäynnissä = false; 
    2626 
     27        bool hiiretAsetettu = false; 
     28 
     29        ButtonPosition hiirenAsento = ButtonPosition.Pressed; 
     30 
    2731        int pisteidenmaara = 0; 
    2832 
     
    3539        HighScoreList Top5; 
    3640 
     41        DateTime viimeksiSoitettuAani = DateTime.MinValue; 
     42 
    3743        protected override void LoadContent() 
    3844        { 
     
    4349            Controls.Listen(Keys.Enter, ButtonPosition.Down, AloitaPeli); 
    4450 
     51            Controls.Listen(Keys.F11, ButtonPosition.Down, Huijaus); 
     52 
    4553            Top5 = HighScoreList.LoadOrCreate(this, "Top5Ammuntapeli.txt", 5); 
    4654        } 
    4755 
    48  
    49  
    50  
    51         private void AjanLaskenta() 
    52         { 
    53             aikaLaskuri = new Meter<double>(30, 0, aikaaKentassa);  // aikaLaskurin oletuksena on 30 sekuntia, minimiarvona 0 sekuntia ja maksimiarvona 30 sekuntia 
    54  
    55             aikaNaytto = new ValueDisplay(this);         // luo uuden aikaNayton 
    56  
    57             aikaNaytto.ValueColor = Color.Red; 
    58  
    59             aikaNaytto.Text = "Aikaa jäljellä: ";          // laitetaan näytöllä näkyvä teksti 
    60  
    61             aikaNaytto.TextColor = Color.Red;          // vaihdetaan tekstin väriä 
    62  
    63             aikaNaytto.FormatDouble(0, true);            // asetetaan näyttämään aika siten, ettei siinä näy yhtään (0) desimaalia 
    64  
    65             aikaNaytto.BindTo(aikaLaskuri);              // liitetään aikaNaytto aikaLaskuriin 
    66  
    67             aikaLaskuri.LowerLimit += new Meter<double>.OnLimitHandler(AikaLoppui);  // asetetaan tapahtuma, kun aikaLaskurin arvona on 0. 
    68  
    69             Add(aikaNaytto);                             // lisätään aikaNaytto peliin 
    70  
    71             aikaLaskuri.Reset(); 
    72  
    73             aikaNaytto.Visible = true; 
    74         } 
    75  
    76  
    77  
    78         protected override void OnUpdate(GameTime time) 
    79         { 
    80             if (aikaLaskuri != null) 
    81             { 
    82                 aikaLaskuri.Value -= time.ElapsedGameTime.TotalSeconds;      // päivittää aikalaskuria siten, että arvosta vähennetään kulunut aika 
    83             } 
    84  
    85             base.OnUpdate(time); 
    86         } 
    87  
    88  
    89  
    90         private void AikaLoppui(Meter<double> sender) 
    91         { 
    92             aikaLaskuri = null; 
    93  
    94             MessageDisplay.Position = new Vector2D( -75, 0 ); 
    95  
    96             MessageDisplay.Clear(); 
    97  
    98             MessageDisplay.Add("Aika loppui...\nSait " + pisteidenmaara + " pistettä.\nPaina Enter\npelataksesi uudelleen.");  // näytetään viestinäytöllä teksti 
    99  
    100             Pelikäynnissä = false; 
    101  
    102             InputQueryWindow PelaajanNimi = new InputQueryWindow(this); 
    103  
    104             PelaajanNimi.X = 0; 
    105  
    106             PelaajanNimi.Y = 200; 
    107              
    108             PelaajanNimi.Title = "Kirjoita nimesi"; 
    109  
    110             PelaajanNimi.InputConfirmed += new InputQueryWindow.InputHandler(Nimensyotto); 
    111  
    112             ShowWindow(PelaajanNimi); 
     56        void asetaKaikkiKuuntelijat() 
     57        { 
     58            if (hiiretAsetettu) return; 
    11359 
    11460            foreach (var o in Level.Objects) 
     
    11864                    PhysicsObject pallo = o as PhysicsObject; 
    11965 
     66                    HiirenKuuntelija(pallo); 
     67                } 
     68            } 
     69 
     70            hiiretAsetettu = true; 
     71        } 
     72 
     73        bool Huijaus(ControlEvent e) 
     74        { 
     75            KeyboardState state = Keyboard.GetState(); 
     76 
     77            if (state.IsKeyDown(Keys.LeftControl) && state.IsKeyDown(Keys.RightShift)) 
     78            { 
     79                hiirenAsento = ButtonPosition.Down; 
     80 
     81                MessageDisplay.Add("Cheat code inserted!"); 
     82            } 
     83 
     84            return false; 
     85        } 
     86 
     87 
     88        private void AjanLaskenta() 
     89        { 
     90            aikaLaskuri = new Meter<double>(30, 0, aikaaKentassa);  // aikaLaskurin oletuksena on 30 sekuntia, minimiarvona 0 sekuntia ja maksimiarvona 30 sekuntia 
     91 
     92            aikaNaytto = new ValueDisplay(this);         // luo uuden aikaNayton 
     93 
     94            aikaNaytto.ValueColor = Color.Red; 
     95 
     96            aikaNaytto.Text = "Aikaa jäljellä: ";          // laitetaan näytöllä näkyvä teksti 
     97 
     98            aikaNaytto.TextColor = Color.Red;          // vaihdetaan tekstin väriä 
     99 
     100            aikaNaytto.FormatDouble(0, true);            // asetetaan näyttämään aika siten, ettei siinä näy yhtään (0) desimaalia 
     101 
     102            aikaNaytto.BindTo(aikaLaskuri);              // liitetään aikaNaytto aikaLaskuriin 
     103 
     104            aikaLaskuri.LowerLimit += new Meter<double>.OnLimitHandler(AikaLoppui);  // asetetaan tapahtuma, kun aikaLaskurin arvona on 0. 
     105 
     106            Add(aikaNaytto);                             // lisätään aikaNaytto peliin 
     107 
     108            aikaLaskuri.Reset(); 
     109 
     110            aikaNaytto.Visible = true; 
     111        } 
     112 
     113 
     114 
     115        protected override void OnUpdate(GameTime time) 
     116        { 
     117            if (aikaLaskuri != null) 
     118            { 
     119                aikaLaskuri.Value -= time.ElapsedGameTime.TotalSeconds;      // päivittää aikalaskuria siten, että arvosta vähennetään kulunut aika 
     120            } 
     121 
     122            base.OnUpdate(time); 
     123        } 
     124 
     125 
     126 
     127        private void AikaLoppui(Meter<double> sender) 
     128        { 
     129            aikaLaskuri = null; 
     130 
     131            MessageDisplay.Position = new Vector2D(-75, 0); 
     132 
     133            MessageDisplay.Clear(); 
     134 
     135            MessageDisplay.Add("Aika loppui...\nSait " + pisteidenmaara + " pistettä.\nPaina Enter\npelataksesi uudelleen.");  // näytetään viestinäytöllä teksti 
     136 
     137            Pelikäynnissä = false; 
     138 
     139            InputQueryWindow PelaajanNimi = new InputQueryWindow(this); 
     140 
     141            PelaajanNimi.X = 0; 
     142 
     143            PelaajanNimi.Y = 200; 
     144 
     145            PelaajanNimi.Title = "Kirjoita nimesi"; 
     146 
     147            PelaajanNimi.InputConfirmed += new InputQueryWindow.InputHandler(Nimensyotto); 
     148 
     149            ShowWindow(PelaajanNimi); 
     150 
     151            foreach (var o in Level.Objects) 
     152            { 
     153                if (o is PhysicsObject) 
     154                { 
     155                    PhysicsObject pallo = o as PhysicsObject; 
     156 
    120157                    pallo.Visible = false; 
    121158 
     
    130167            Top5.ScreenList.Y = -100; 
    131168 
     169            hiirenAsento = ButtonPosition.Pressed; 
     170 
    132171        } 
    133172 
     
    143182 
    144183 
    145          
     184 
    146185 
    147186        void LuoTähtäin() 
     
    186225 
    187226            MessageDisplay.Y = 0; 
    188              
     227 
    189228            Level.CreateBorder(1.0, false); 
    190229 
     
    215254            AjanLaskenta(); 
    216255 
    217              
     256            Top5.Hide(); 
     257 
     258            asetaKaikkiKuuntelijat(); 
    218259 
    219260            foreach (var pallo in Level.Objects) 
     
    247288 
    248289                pallo.IgnoresCollisionResponse = true; 
    249  
    250                 Controls.Listen(pallo, MouseButtons.Left, ButtonPosition.Pressed, 0, RajaytaPallo, null, pallo); 
    251             } 
    252         } 
     290            } 
     291        } 
     292 
     293        private void HiirenKuuntelija(PhysicsObject pallo) 
     294        { 
     295            Controls.Listen(pallo, MouseButtons.Left, hiirenAsento, 0, RajaytaPallo, null, pallo); 
     296 
     297            Controls.Listen(MouseButtons.Left, hiirenAsento, 0, SoitaLaserAani); 
     298        } 
     299 
     300 
     301 
     302 
     303        bool SoitaLaserAani(ControlEvent e) 
     304        { 
     305            if (viimeksiSoitettuAani + TimeSpan.FromSeconds(0.1) > DateTime.Now) return false; 
     306 
     307            PlaySound("Laser"); 
     308 
     309            viimeksiSoitettuAani = DateTime.Now; 
     310 
     311            return false; 
     312        } 
     313 
     314 
    253315 
    254316        private void PallotLiikkeelle(PhysicsObject pallo) 
    255317        { 
    256             pallo.Visible = true;    
     318            pallo.Visible = true; 
    257319 
    258320            pallo.IgnoresCollisionResponse = false; 
     
    262324            Vector2D PallotLiikkeelle = new Vector2D(RandomGen.NextInt(-2500, 2500), RandomGen.NextInt(-2500, 2500)); 
    263325 
    264             pallo.Hit(PallotLiikkeelle);                      
     326            pallo.Hit(PallotLiikkeelle); 
    265327        } 
    266328 
     
    298360 
    299361            pallo.IgnoresCollisionResponse = true; 
    300  
    301             //Controls.DisableControls(0, pallo); 
    302362 
    303363            pisteidenmaara = pisteidenmaara + 15; 
Note: See TracChangeset for help on using the changeset viewer.