Changeset 2314 for 2011/26


Ignore:
Timestamp:
2011-06-29 14:54:19 (12 years ago)
Author:
janiemit
Message:

Talletus.

Location:
2011/26/JaniN/neon wars
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2011/26/JaniN/neon wars/neon wars/neon wars/Peli.cs

    r2241 r2314  
    99using Physics2DDotNet.Ignorers; 
    1010 
    11  
    12  
     11class Pelaaja : PhysicsObject 
     12{ 
     13    public int Elamat = 10; 
     14 
     15    public Pelaaja(double leveys, double korkeus) 
     16        : base(leveys, korkeus) 
     17    { 
     18    } 
     19} 
     20class vihulainen : PhysicsObject 
     21{ 
     22    public int Elamat = 2; 
     23 
     24    public vihulainen(double leveys, double korkeus) 
     25        : base(leveys, korkeus) 
     26    { 
     27    } 
     28} 
    1329public class Peli : PhysicsGame 
    1430{ 
    15     PhysicsObject Ihansama; 
     31    Pelaaja pelaaja; 
    1632    GameObject pyssy; 
    17  
     33    int montakoVihollistaLuotu = 0; 
     34    int montakoVihollistaLuodaan = 1; 
    1835    PhysicsObject alareuna; 
     36    int pisteet = 0; 
     37    bool ladattu = true; 
     38    Label pistelaskuri; 
     39    int vihollisia; 
     40    int montakoVihollistaRuudullaEnintaan = 10; 
     41    BarGauge pelaajaElamaPalkki; 
     42    DoubleMeter pelaajanElamat; 
     43    Image peliloppui = LoadImage("gameover"); 
     44    int kentanLeveys = 400; 
     45    int kentanKorkeus = 380; 
     46 
    1947 
    2048    public override void Begin() 
    2149    { 
    22  
    23  
     50        ClearAll(); 
     51        Keyboard.Listen(Key.Enter, ButtonState.Released, Start_game, null); 
     52        aloitusruudunnappulat(); 
     53    } 
     54 
     55    void Start_game() 
     56    { 
     57        ClearAll(); 
    2458         
     59        //Level.Width = Level.Width * 2; 
     60        Level.Width = kentanLeveys; 
     61        //Level.Height = Level.Height * 2; 
     62        //Level.Height = Level.Height / 2; 
    2563        aseta_näppäimet(); 
    2664        Mouse.IsCursorVisible = true; 
     65        Camera.ZoomToLevel(); 
     66        Timer latausajastin = new Timer(); 
     67        latausajastin.Interval = 0.03; 
     68        latausajastin.Trigger += new Timer.TriggerHandler(latausajastin_Trigger); 
     69        latausajastin.Start(); 
     70 
     71 
     72        vihollisia = 0; 
     73        montakoVihollistaLuodaan = 1; 
     74        montakoVihollistaRuudullaEnintaan = 10; 
     75        montakoVihollistaLuotu = 0; 
     76 
     77        Level.BackgroundColor = Color.DarkCyan; 
     78 
     79 
     80        Timer vihollistenLuontiAjastin = new Timer(); 
     81        vihollistenLuontiAjastin.Interval = 1; 
     82        vihollistenLuontiAjastin.Trigger += TeeVihollisia; 
     83        vihollistenLuontiAjastin.Start(); 
     84        //TeeVihollinen(ajastin); 
     85 
     86        Timer vihollistenLuomisenNopeutus = new Timer(); 
     87        vihollistenLuomisenNopeutus.Interval = 5; // Kuinka monen sekunnin välein vihuja tulee lisää 
     88        vihollistenLuomisenNopeutus.Trigger += NopeutaVihollistenLuontia; 
     89        vihollistenLuomisenNopeutus.Tag = vihollistenLuontiAjastin; 
     90        vihollistenLuomisenNopeutus.Start(); 
     91 
     92        pelaaja = new Pelaaja(50.0, 50.0); 
     93        pelaaja.X = 0; 
     94        pelaaja.Color = Color.Blue; 
     95        pelaaja.CollisionIgnoreGroup = 1; 
     96        pelaaja.Shape = Shape.Triangle; 
     97        pelaaja.Y = Level.Bottom + 100; 
     98        Add(pelaaja); 
     99 
     100        pelaajanElamat = new DoubleMeter(pelaaja.Elamat); 
     101        pelaajanElamat.LowerLimit += PeliLoppui; 
     102 
     103        pelaajaElamaPalkki = new BarGauge(20, Screen.Width / 3); 
     104        //pelaajaElamaPalkki.X = Screen.Left + Screen.Width / 4; 
     105        pelaajaElamaPalkki.Y = Screen.Bottom + 40; 
     106        pelaajaElamaPalkki.Angle = -Angle.FromDegrees(90); 
     107        pelaajaElamaPalkki.Color = Color.Red; 
     108        pelaajaElamaPalkki.BarColor = Color.Green; 
    27109         
     110        pelaajaElamaPalkki.BorderColor = Color.Purple; 
     111        pelaajanElamat.MaxValue = 10; 
     112        pelaajanElamat.Value = 10; 
     113        pelaajaElamaPalkki.BindTo(pelaajanElamat); 
    28114         
    29         Timer ajastin = new Timer(); 
    30         ajastin.Interval = 0.05; 
    31         ajastin.Trigger += TeeVihollinen; 
    32         ajastin.Start(); 
    33         //TeeVihollinen(ajastin); 
    34  
    35         Ihansama = PhysicsObject.CreateStaticObject(50.0, 50.0); 
    36         Ihansama.X = 0; 
    37         Ihansama.Y = Level.Bottom + 100; 
    38         Add(Ihansama); 
    39        
     115        Add(pelaajaElamaPalkki); 
    40116 
    41117        pyssy = new GameObject(100, 5); 
    42118        pyssy.Color = Color.Black; 
    43         Ihansama.Add(pyssy); 
    44         //pyssy.Position = new Vector(Ihansama.Position.X, Ihansama.Position.Y+pyssy.Height/2); 
    45         //Add(pyssy); 
    46  
    47         //HingeJoint liitos = PhysicsGame.CreateHingeJoint(Ihansama, pyssy, Ihansama.Position); 
    48         //Add(liitos); 
     119        pelaaja.Add(pyssy); 
     120 
    49121        pyssy.Image = LoadImage("Untitled"); 
    50         // Gravity = new Vector(0, -1000); 
    51122        Level.CreateBorders(); 
     123 
    52124        alareuna = Level.CreateBottomBorder(); 
    53          
    54  
    55     } 
    56  
    57  
     125 
     126 
     127        pistelaskuri = new Label(pisteet.ToString()); 
     128        pistelaskuri.Position = new Vector(Screen.Right - 40, Screen.Top - 10); 
     129        Add(pistelaskuri); 
     130    } 
     131 
     132    void PeliLoppui(double arvo) 
     133    { 
     134        ClearAll(); 
     135        Level.Background.Image = peliloppui; 
     136        Timer.SingleShot(3, Begin); 
     137    } 
     138 
     139    void latausajastin_Trigger(Timer sender) 
     140    { 
     141        ladattu = true; 
     142    } 
    58143 
    59144    void aseta_näppäimet() 
     
    63148 
    64149 
    65  
    66  
    67150    protected override void Update(Time time) 
    68151    { 
    69152        if (pyssy != null) 
    70153        { 
    71             pyssy.Angle = (Mouse.PositionOnWorld - Ihansama.Position).Angle; 
     154            pyssy.Angle = (Mouse.PositionOnWorld - pelaaja.Position).Angle; 
    72155        } 
    73156 
     
    77160    void ampuu() 
    78161    { 
     162        if (!ladattu) return; 
    79163        PhysicsObject ammus = new PhysicsObject(5, 5); 
    80         ammus.Velocity = (Mouse.PositionOnWorld - Ihansama.Position).Normalize()*500; 
    81  
    82         //ammus.Push(Mouse.PositionOnWorld); 
    83         //ammus.Velocity *= 3; 
     164        ammus.Velocity = (Mouse.PositionOnWorld - pelaaja.Position).Normalize() * 500; 
     165 
    84166        ammus.Tag = "ammus"; 
    85167        ammus.Destroyed += new Action(delegate { ammus_Destroyed(ammus); }); 
    86168        Add(ammus); 
    87         ammus.Position = Ihansama.Position + (Mouse.PositionOnWorld - Ihansama.Position).Normalize()*((pyssy.Width/2)-14); 
     169        ammus.Position = pelaaja.Position + (Mouse.PositionOnWorld - pelaaja.Position).Normalize() * ((pyssy.Width / 2) - 14); 
    88170 
    89171        AddCollisionHandler(ammus, KasitteleAmmuksenTormays); 
    90172        ammus.Shape = Shape.Circle; 
    91173        ammus.Color = Color.Black; 
    92  
     174        ladattu = false; 
    93175    } 
    94176 
     
    104186    void KasitteleAmmuksenTormays(PhysicsObject ammus, PhysicsObject kohde) 
    105187    { 
    106         if (kohde != Ihansama && kohde.Tag.ToString() != "ammus") ammus.Destroy(); 
    107         if (kohde != Ihansama && kohde.Tag.ToString() == "vihollinen") { kohde.Destroy(); } 
    108     } 
    109     void KasitteleVihollisenTormays(PhysicsObject vihollinen ,PhysicsObject kohde) 
    110     { 
    111         if (kohde == alareuna) vihollinen.Destroy();  
    112     } 
    113  
    114     void TeeVihollinen(Timer sender) 
    115     { 
    116         PhysicsObject vihollinen = new PhysicsObject(50, 50); 
    117         vihollinen.Shape = Shape.Rectangle; 
    118         vihollinen.Velocity = new Vector(0, 500); 
    119         vihollinen.X = RandomGen.NextDouble(Level.Left, Level.Right); 
    120         vihollinen.Y = Level.Top; 
    121         vihollinen.Tag = "vihollinen"; 
    122         vihollinen.Image = LoadImage("vihollinen"); 
    123         vihollinen.Angle = Angle.StraightAngle; 
    124         vihollinen.CanRotate = false; 
    125         AddCollisionHandler(vihollinen, KasitteleVihollisenTormays); 
    126         Add(vihollinen); 
     188        if (kohde != pelaaja && kohde.Tag.ToString() != "ammus") ammus.Destroy(); 
     189        if (kohde is vihulainen) 
     190        { 
     191            vihulainen vihu = kohde as vihulainen; 
     192            vihu.Color = Color.Red; 
     193            vihu.Elamat -= 1; 
     194            if (vihu.Elamat <= 0) { vihu.Destroy(); vihollisia--; } 
     195        } 
     196    } 
     197    void KasitteleVihollisenTormays(PhysicsObject vihollinen, PhysicsObject kohde) 
     198    { 
     199        if (kohde == alareuna) 
     200        { 
     201            vihollinen.Destroy(); 
     202            vihollisia--; 
     203            pelaajanElamat.Value--; 
     204        } 
     205    } 
     206 
     207    void NopeutaVihollistenLuontia(Timer sender) 
     208    { 
     209        pisteet++; 
     210        pistelaskuri.Text = pisteet.ToString(); 
     211        montakoVihollistaLuodaan += 1; 
     212        MessageDisplay.Add("aalto numero " + montakoVihollistaLuodaan); 
     213    } 
     214 
     215    void TeeVihollisia(Timer sender) 
     216    { 
     217        if (vihollisia < montakoVihollistaRuudullaEnintaan) 
     218        { 
     219            vihollisia+=montakoVihollistaLuodaan; 
     220            for (int i = 0; i < montakoVihollistaLuodaan; i++) 
     221            { 
     222                montakoVihollistaLuotu++; // montakoVihollistaLuotu = montakoVihollistaLuotu + 1; 
     223                vihulainen vihollinen = new vihulainen(50, 50); 
     224                vihollinen.Shape = Shape.Triangle; 
     225                vihollinen.Velocity = new Vector(0, 300); 
     226                vihollinen.X = RandomGen.NextDouble(Level.Left + 10, Level.Right - 10); 
     227                vihollinen.Y = Level.Top - 35; 
     228                vihollinen.Tag = "vihollinen"; 
     229                vihollinen.Color = Color.Green; 
     230                vihollinen.CollisionIgnoreGroup = 1; 
     231                //vihollinen.Image = LoadImage("vihollinen"); 
     232                vihollinen.Angle = Angle.StraightAngle; 
     233                vihollinen.CanRotate = false; 
     234                AddCollisionHandler(vihollinen, KasitteleVihollisenTormays); 
     235                Add(vihollinen); 
     236            } 
     237        } 
     238    } 
     239    void aloitusruudunnappulat() 
     240    { 
     241        Mouse.IsCursorVisible = true; 
     242        luonappi("Aloita peli", new Vector(0, 0), new Action(Start_game), Color.Aqua); 
     243        //luonappi(" 
     244    } 
     245    void luonappi(string Teksti, Vector paikka, Action action, Color väri) 
     246    { 
     247        PushButton nappi = new PushButton(Teksti); 
     248        nappi.Position = paikka; 
     249        nappi.Clicked += action; 
     250        nappi.Color = väri; 
     251        Add(nappi); 
    127252    } 
    128253 
  • 2011/26/JaniN/neon wars/neon wars/neon warsContent/neon warsContent.contentproj

    r2241 r2314  
    5656    </Compile> 
    5757  </ItemGroup> 
     58  <ItemGroup> 
     59    <Compile Include="gameover.png"> 
     60      <Name>gameover</Name> 
     61      <Importer>TextureImporter</Importer> 
     62      <Processor>TextureProcessor</Processor> 
     63    </Compile> 
     64  </ItemGroup> 
    5865  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    5966  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
Note: See TracChangeset for help on using the changeset viewer.