Changeset 2540 for 2011/31/JoonasM


Ignore:
Timestamp:
2011-08-03 14:59:04 (8 years ago)
Author:
joarmuho
Message:

Talletus.

Location:
2011/31/JoonasM/TankSurvival/TankSurvival
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • 2011/31/JoonasM/TankSurvival/TankSurvival/TankSurvival/Peli.cs

    r2509 r2540  
    1010{ 
    1111    Image olionKuva = LoadImage("pelaaja"); 
     12    Image palikanKuva = LoadImage("seinä"); 
     13    Image vihunKuva = LoadImage("vihollinen"); 
     14 
    1215    PhysicsObject pelaaja; 
     16    PlasmaCannon plasmaTykki; 
    1317 
    1418    public override void Begin() 
    1519    { 
    1620        LuoKenttä(); 
    17  
    18         Level.CreateBorders(1.0, false); 
    19         Camera.ZoomToLevel(); 
     21        Camera.StayInLevel = true; 
     22        Camera.ZoomFactor = 4; 
    2023        Level.BackgroundColor = Color.ForestGreen; 
    21         pelaaja = new PhysicsObject(24, 45); 
     24        pelaaja = new PhysicsObject(29, 50); 
     25        pelaaja.X = -420.0; 
     26        pelaaja.Y = 290.0; 
    2227        pelaaja.Image = olionKuva; 
    2328        pelaaja.Restitution = 1.0; 
    2429        pelaaja.KineticFriction = 1.0; 
    2530        pelaaja.LinearDamping = 0.5; 
    26         Add( pelaaja ); 
     31        pelaaja.AngularDamping = 0.5; 
     32        Add(pelaaja); 
     33        plasmaTykki = new PlasmaCannon(20, 1); 
     34        pelaaja.Add(plasmaTykki); 
     35        plasmaTykki.Power.Value += 0.1; 
     36        plasmaTykki.Angle += Angle.FromDegrees(-97); 
     37        Camera.Follow(pelaaja); 
     38        AddCollisionHandler(pelaaja, Kasittelepelaajantormays); 
    2739 
    28         Keyboard.Listen(Key.Left,  ButtonState.Down,  
    29         LiikutaPelaajaa, null, new Vector( -250, 0 )); 
    30         Keyboard.Listen(Key.Right, ButtonState.Down,  
    31         LiikutaPelaajaa, null, new Vector( 250, 0 )); 
    32         Keyboard.Listen(Key.Up, ButtonState.Down,  
    33         LiikutaPelaajaa, null, new Vector( 0, 250 )); 
    34         Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector( 0, -250 )); 
     40        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-250, 0)); 
     41        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(250, 0)); 
     42        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 250)); 
     43        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -250)); 
    3544        Keyboard.Listen(Key.A, ButtonState.Down, KäännäPelaajaa, null, 5.0); 
    3645        Keyboard.Listen(Key.D, ButtonState.Down, KäännäPelaajaa, null, -5.0); 
     
    3948        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    4049        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     50        Keyboard.Listen(Key.S, ButtonState.Down, AmmuAseella, "Ammu"); 
    4151 
    42      } 
     52    } 
    4353 
    4454    void LuoKenttä() 
    4555    { 
    46       TileMap ruudut = TileMap.FromLevelAsset("level1"); 
     56        TileMap ruudut = TileMap.FromLevelAsset("level1"); 
     57        ruudut.SetTileMethod('=', LuoPalikka); 
     58        ruudut.SetTileMethod('v', Luovihu); 
     59        ruudut.Execute(); 
     60    } 
     61 
     62    void Luovihu(Vector paikka, double leveys, double korkeus) 
     63    { 
     64        PhysicsObject vihu = PhysicsObject.CreateStaticObject(leveys, korkeus, Shape.Rectangle); 
     65        vihu.Position = paikka; 
     66        vihu.Image = vihunKuva; 
     67        vihu.Tag = "vihu"; 
     68        Timer ajastin = new Timer(); 
     69        ajastin.Interval = 1.5; 
     70        ajastin.Timeout += delegate { vihollineAmpuu(vihu); }; 
     71        ajastin.Start(); 
     72 
     73        Add(vihu); 
     74    } 
     75 
     76    void vihollineAmpuu(PhysicsObject vihollinen) 
     77    { 
     78        PhysicsObject ammus; 
     79 
     80        int i = 0; 
     81 
     82        while (i < 4) 
     83        { 
     84            ammus = new PhysicsObject(10, 10); 
     85            ammus.Position = vihollinen.Position; 
     86            Add(ammus); 
     87            ammus.Tag = "vihuammus"; 
     88            switch (i) 
     89            { 
     90                case 0: // ylös 
     91                    ammus.Hit(new Vector(0, 100)); 
     92                    ammus.Y += 10; 
     93                    break; 
     94                case 1: // oikealle 
     95                    ammus.Hit(new Vector(100, 0)); 
     96                    ammus.X += 10; 
     97                    break; 
     98                case 2:  // alas 
     99                    ammus.Hit(new Vector(0, -100)); 
     100                    ammus.Y -= 10; 
     101                    break; 
     102                case 3: // vasemalle 
     103                    ammus.Hit(new Vector(-100, 0)); 
     104                    ammus.X -= 10; 
     105                    break; 
     106                default: 
     107                    break; 
     108            }             
     109             
     110            AddCollisionHandler(ammus, kasitteleammuksentormaus); 
     111            i++; 
     112        } 
     113    } 
     114 
     115    void LuoPalikka(Vector paikka, double leveys, double korkeus) 
     116    { 
     117        PhysicsObject taso = PhysicsObject.CreateStaticObject( 
     118  leveys, korkeus, Shape.Rectangle); 
     119        taso.Position = paikka; 
     120        taso.Image = palikanKuva; 
     121        Add(taso); 
     122        taso.Tag = "taso"; 
     123 
     124 
    47125    } 
    48126 
     
    56134        pelaaja.Move(vektori); 
    57135    } 
     136 
     137    void Kasittelepelaajantormays(PhysicsObject pelaaja, PhysicsObject kohde) 
     138    { 
     139        if (kohde.Tag.ToString() == "vihu") 
     140        { 
     141            pelaaja.Destroy(); 
     142            AloitaAlusta(); 
     143        } 
     144    } 
     145 
     146    void AloitaAlusta() 
     147    { 
     148        ClearAll(); 
     149        Begin(); 
     150    } 
     151 
     152 
     153    void AmmuAseella() 
     154    { 
     155        PhysicsObject ammus = plasmaTykki.Shoot(); 
     156 
     157        if (ammus != null) 
     158        { 
     159            ammus.Size *= 1; 
     160            AddCollisionHandler(ammus, kasitteleammuksentormaus); 
     161        } 
     162    } 
     163 
     164    void kasitteleammuksentormaus(PhysicsObject ammus, PhysicsObject kohde) 
     165    { 
     166        if (kohde.Tag.ToString() == "vihu" && ammus.Tag.ToString() != "vihuammus") 
     167        { 
     168            kohde.Destroy(); 
     169        } 
     170        if (kohde.Tag.ToString() == "taso") 
     171        { 
     172            ammus.Destroy(); 
     173        } 
     174 
     175    } 
     176 
     177 
    58178} 
  • 2011/31/JoonasM/TankSurvival/TankSurvival/TankSurvivalContent/TankSurvivalContent.contentproj

    r2509 r2540  
    5656      <Importer>TextFileImporter</Importer> 
    5757      <Processor>TextFileContentProcessor</Processor> 
     58      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     59    </Compile> 
     60  </ItemGroup> 
     61  <ItemGroup> 
     62    <Compile Include="seinä.png"> 
     63      <Name>seinä</Name> 
     64      <Importer>TextureImporter</Importer> 
     65      <Processor>TextureProcessor</Processor> 
     66      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     67    </Compile> 
     68  </ItemGroup> 
     69  <ItemGroup> 
     70    <Compile Include="vihollinen.png"> 
     71      <Name>vihollinen</Name> 
     72      <Importer>TextureImporter</Importer> 
     73      <Processor>TextureProcessor</Processor> 
     74      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
    5875    </Compile> 
    5976  </ItemGroup> 
  • 2011/31/JoonasM/TankSurvival/TankSurvival/TankSurvivalContent/level1.txt

    r2509 r2540  
    11=================== 
    22= =          =    = 
    3 = = ==€==€== =  = = 
    4 =     =    ==== = 
    5 =#€= =====    =   = 
    6 =    =   ==== = = = 
    7 =      = ==== === = 
    8 =             =€  = 
    9 = =    ===#===== == 
    10 = ==== =   =   = = 
     3= = ==v==v== =  = = 
     4=     =    v ==== = 
     5==v= =v===    =   = 
     6=        ==== = = = 
     7======= ====v === = 
     8=   =v        =v  = 
     9=v=    ===#===== == 
     10= ==== =   =   = v= 
    1111=    =   =   =   == 
    1212=================== 
Note: See TracChangeset for help on using the changeset viewer.