Changeset 7289 for 2016/24/IlariJ


Ignore:
Timestamp:
2016-06-14 14:49:49 (3 years ago)
Author:
koannak
Message:
 
Location:
2016/24/IlariJ/ShootIO
Files:
10 added
13 edited

Legend:

Unmodified
Added
Removed
  • 2016/24/IlariJ/ShootIO/ShootIO/ShootIO/ShootIO.cs

    r7251 r7289  
    99public class ShootIO : PhysicsGame 
    1010{ 
    11     PhysicsObject pelaaja; 
     11    Image zompi1 = LoadImage("zompi1"); 
     12    Image zompi2 = LoadImage("zompi2"); 
     13    Image zompi3 = LoadImage("zompi3"); 
     14    Image taustaKuva = LoadImage("tausta"); 
     15    AssaultRifle pyssy; 
     16    private double liikkumisnopeus = 100; 
     17    Image tankinKuva = LoadImage("tankki"); 
     18    Tankki pelaaja; 
     19    DoubleMeter elamaLaskuri; 
    1220    public override void Begin() 
    1321    { 
    14     LuoKentta(); 
    15     Camera.ZoomToAllObjects(); 
    16     // TODO: Kirjoita ohjelmakoodisi tähän 
     22        LuoKentta(); 
     23        LuoPelaaja(); 
     24        LisaaOhjaimet(); 
     25        LuoElamaLaskuri(); 
     26        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 
     27        Camera.Follow(pelaaja); 
     28        Camera.Zoom(4); 
     29        // TODO: Kirjoita ohjelmakoodisi tähän 
    1730 
    18     PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    19     Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     31        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     32        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    2033    } 
    2134    void LuoKentta() 
    2235    { 
    23     //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 
    24     ColorTileMap ruudut = ColorTileMap.FromLevelAsset("mappi"); 
     36        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 
     37        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("mappi"); 
    2538 
    26     //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. 
     39        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. 
    2740 
    28     ruudut.SetTileMethod(Color.Black, LuoEste); 
    29     ruudut.SetTileMethod(Color.Red, LuoPommi); 
     41        ruudut.SetTileMethod(Color.Black, LuoEste); 
     42        ruudut.SetTileMethod(Color.Red, LuoPommi); 
     43        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoVihu, zompi1); 
     44        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), LuoVihu, zompi2); 
     45        ruudut.SetTileMethod(Color.FromHexCode("FF6A00"), LuoVihu, zompi3); 
    3046 
    31     //3. Execute luo kentän 
    32     //   Parametreina leveys ja korkeus 
    33     ruudut.Execute(20, 20); 
     47        //3. Execute luo kentän 
     48        //   Parametreina leveys ja korkeus 
     49        ruudut.Execute(20, 20); 
     50 
     51        Level.Background.Image = taustaKuva; 
     52        Level.Background.FitToLevel(); 
    3453    } 
    3554 
    36     void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
     55    void LuoPelaaja() 
    3756    { 
    38     pelaaja = new PhysicsObject(10, 10); 
    39     pelaaja.Position = paikka; 
    40     //AddCollisionHandler(pelaaja, "pommi", TormaaPommiin); 
    41     Add(pelaaja); 
     57        pelaaja = new Tankki(10, 10); 
     58        pelaaja.Position = new Vector(0,0); 
     59        AddCollisionHandler(pelaaja, "pommi", TormaaPommiin); 
     60        Add(pelaaja); 
     61        pelaaja.Image = tankinKuva; 
     62        pelaaja.IgnoresExplosions = false; 
     63        pelaaja.CanRotate = false; 
     64 
     65        LuoAse(); 
     66 
    4267    } 
    4368 
    4469    void LuoEste(Vector paikka, double leveys, double korkeus) 
    4570    { 
    46     PhysicsObject este = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    47     este.Position = paikka; 
    48     este.Image = LoadImage("este"); 
    49     este.CollisionIgnoreGroup = 1; 
    50     Add(este); 
     71        PhysicsObject este = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     72        este.Position = paikka; 
     73        este.Image = LoadImage("este"); 
     74        este.CollisionIgnoreGroup = 1; 
     75        Add(este); 
    5176    } 
    5277 
    5378    void LuoPommi(Vector paikka, double leveys, double korkeus) 
    5479    { 
    55     PhysicsObject pommi = PhysicsObject.CreateStaticObject(5, 5); 
    56     pommi.IgnoresCollisionResponse = true; 
    57     pommi.Position = paikka; 
    58     pommi.Image = LoadImage("pommi"); 
    59     pommi.Tag = "pommi"; 
    60     Add(pommi, 1); 
     80        PhysicsObject pommi = PhysicsObject.CreateStaticObject(11, 11); 
     81        pommi.IgnoresCollisionResponse = true; 
     82        pommi.Position = paikka; 
     83        pommi.Image = LoadImage("pommi"); 
     84        pommi.Tag = "pommi"; 
     85        Add(pommi, 1); 
    6186    } 
     87 
     88    void LisaaOhjaimet() 
     89    { 
     90        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, null, new Vector(-liikkumisnopeus, 0)); 
     91        Keyboard.Listen(Key.A, ButtonState.Released, Liikuta, null, Vector.Zero); 
     92        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, null, new Vector(liikkumisnopeus, 0)); 
     93        Keyboard.Listen(Key.D, ButtonState.Released, Liikuta, null, Vector.Zero); 
     94        Keyboard.Listen(Key.S, ButtonState.Down, Liikuta, null, new Vector(0, -liikkumisnopeus)); 
     95        Keyboard.Listen(Key.S, ButtonState.Released, Liikuta, null, Vector.Zero); 
     96        Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, null, new Vector(0, liikkumisnopeus)); 
     97        Keyboard.Listen(Key.W, ButtonState.Released, Liikuta, null, Vector.Zero); 
     98        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", pyssy); 
     99 
     100    } 
     101 
     102    void Liikuta(Vector speed) 
     103    { 
     104        pelaaja.Velocity = speed; 
     105    } 
     106 
     107    void TormaaPommiin(PhysicsObject pelaaja, PhysicsObject pommi) 
     108    { 
     109        Explosion rajahdys = new Explosion(50); 
     110        rajahdys.Position = pommi.Position; 
     111        Add(rajahdys); 
     112        pommi.Destroy(); 
     113        this.pelaaja.ElamaLaskuri.Value -=2; 
     114        elamaLaskuri.Value -=2; 
     115        rajahdys.Speed = 100.0; 
     116        rajahdys.Force = 100; 
     117    } 
     118 
     119    void LuoElamaLaskuri() 
     120    { 
     121        elamaLaskuri = new DoubleMeter(10); 
     122        elamaLaskuri.MaxValue = 10; 
     123        elamaLaskuri.LowerLimit += ElamaLoppui; 
     124 
     125        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     126        elamaPalkki.X = Screen.Left + 150; 
     127        elamaPalkki.Y = Screen.Top - 20; 
     128        elamaPalkki.BindTo(elamaLaskuri); 
     129        Add(elamaPalkki); 
     130    } 
     131 
     132    void ElamaLoppui() 
     133    { 
     134        MessageDisplay.Add("Elämät loppuivat, voi voi."); 
     135    } 
     136 
     137    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     138    { 
     139        //ammus.Destroy(); 
     140    } 
     141 
     142    void AmmuAseella(AssaultRifle ase) 
     143    { 
     144        PhysicsObject ammus = pyssy.Shoot(); 
     145 
     146        if (ammus != null) 
     147        { 
     148            ammus.Size *= 0.5; 
     149            //ammus.Image = ... 
     150            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     151        } 
     152    } 
     153 
     154    void LuoAse() 
     155    { 
     156        pyssy = new AssaultRifle(20, 5); 
     157        //pyssy.ProjectileCollision = AmmusOsui; 
     158 
     159        //Ammusten määrä aluksi: 
     160        pyssy.Ammo.Value = 1000; 
     161        //Mitä tapahtuu kun ammus osuu johonkin? 
     162        pyssy.ProjectileCollision = AmmusOsui; 
     163        pyssy.IsVisible = false; 
     164        pelaaja.Add(pyssy); 
     165    } 
     166 
     167    void Tahtaa(AnalogState hiirenLiike) 
     168    { 
     169        Vector suuntaPelaaja = (Mouse.PositionOnWorld - pelaaja.AbsolutePosition).Normalize(); 
     170        Mouse.IsCursorVisible = true; 
     171        pelaaja.Angle = suuntaPelaaja.Angle; 
     172    } 
     173 
     174    void LuoVihu(Vector paikka, double leveys, double korkeus, Image vihuKuva) 
     175 
     176    { 
     177        PhysicsObject Vihu = new PhysicsObject(10, 12); 
     178        Vihu.Shape = Shape.Rectangle; 
     179        Add(Vihu); 
     180        Vihu.Image = vihuKuva; 
     181        Vihu.Position = paikka; 
     182    } 
     183 
     184 
    62185} 
     186 
     187class Tankki : PhysicsObject 
     188{ 
     189    private IntMeter elamaLaskuri = new IntMeter(10, 0, 20); 
     190    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     191 
     192    public Tankki(double leveys, double korkeus) 
     193        : base(leveys, korkeus) 
     194    { 
     195        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     196    } 
     197 
     198} 
  • 2016/24/IlariJ/ShootIO/ShootIO/ShootIO/ShootIO.csproj.Debug.cachefile

    r7251 r7289  
    33Content\pommi.xnb 
    44Content\este.xnb 
     5Content\tausta.xnb 
     6Content\zompi1.xnb 
     7Content\zompi2.xnb 
     8Content\zompi3.xnb 
  • 2016/24/IlariJ/ShootIO/ShootIO/ShootIO/obj/x86/Debug/ContentPipeline-{8CBB56FE-761C-42CC-99C2-D82A0DF5B03E}.xml

    r7251 r7289  
    1818      <Options>None</Options> 
    1919      <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\mappi.xnb</Output> 
    20       <Time>2016-06-13T14:54:04.968462+03:00</Time> 
     20      <Time>2016-06-14T14:44:51.634375+03:00</Time> 
    2121    </Item> 
    2222    <Item> 
     
    3737      <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\este.xnb</Output> 
    3838      <Time>2016-06-13T14:48:21.3041201+03:00</Time> 
     39    </Item> 
     40    <Item> 
     41      <Source>tausta.png</Source> 
     42      <Name>tausta</Name> 
     43      <Importer>TextureImporter</Importer> 
     44      <Processor>TextureProcessor</Processor> 
     45      <Options>None</Options> 
     46      <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\tausta.xnb</Output> 
     47      <Time>2016-06-14T12:33:32.5605464+03:00</Time> 
     48    </Item> 
     49    <Item> 
     50      <Source>zompi1.png</Source> 
     51      <Name>zompi1</Name> 
     52      <Importer>TextureImporter</Importer> 
     53      <Processor>TextureProcessor</Processor> 
     54      <Options>None</Options> 
     55      <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi1.xnb</Output> 
     56      <Time>2016-06-14T14:17:08.4710753+03:00</Time> 
     57    </Item> 
     58    <Item> 
     59      <Source>zompi2.png</Source> 
     60      <Name>zompi2</Name> 
     61      <Importer>TextureImporter</Importer> 
     62      <Processor>TextureProcessor</Processor> 
     63      <Options>None</Options> 
     64      <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi2.xnb</Output> 
     65      <Time>2016-06-14T14:17:21.699398+03:00</Time> 
     66    </Item> 
     67    <Item> 
     68      <Source>zompi3.png</Source> 
     69      <Name>zompi3</Name> 
     70      <Importer>TextureImporter</Importer> 
     71      <Processor>TextureProcessor</Processor> 
     72      <Options>None</Options> 
     73      <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi3.xnb</Output> 
     74      <Time>2016-06-14T14:17:39.6031882+03:00</Time> 
    3975    </Item> 
    4076    <BuildSuccessful>true</BuildSuccessful> 
  • 2016/24/IlariJ/ShootIO/ShootIO/ShootIO/obj/x86/Debug/ShootIO.csproj.FileListAbsolute.txt

    r7251 r7289  
    1111C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\obj\x86\Debug\ShootIO.pdb 
    1212C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\este.xnb 
     13C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\tausta.xnb 
     14C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi1.xnb 
     15C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi2.xnb 
     16C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi3.xnb 
  • 2016/24/IlariJ/ShootIO/ShootIO/ShootIO/obj/x86/Debug/cachefile-{8CBB56FE-761C-42CC-99C2-D82A0DF5B03E}-targetpath.txt

    r7251 r7289  
    33Content\pommi.xnb 
    44Content\este.xnb 
     5Content\tausta.xnb 
     6Content\zompi1.xnb 
     7Content\zompi2.xnb 
     8Content\zompi3.xnb 
  • 2016/24/IlariJ/ShootIO/ShootIO/ShootIOContent/ShootIOContent.contentproj

    r7251 r7289  
    7373    </Compile> 
    7474  </ItemGroup> 
     75  <ItemGroup> 
     76    <Compile Include="tausta.png"> 
     77      <Name>tausta</Name> 
     78      <Importer>TextureImporter</Importer> 
     79      <Processor>TextureProcessor</Processor> 
     80    </Compile> 
     81  </ItemGroup> 
     82  <ItemGroup> 
     83    <Compile Include="zompi1.png"> 
     84      <Name>zompi1</Name> 
     85      <Importer>TextureImporter</Importer> 
     86      <Processor>TextureProcessor</Processor> 
     87    </Compile> 
     88  </ItemGroup> 
     89  <ItemGroup> 
     90    <Compile Include="zompi2.png"> 
     91      <Name>zompi2</Name> 
     92      <Importer>TextureImporter</Importer> 
     93      <Processor>TextureProcessor</Processor> 
     94    </Compile> 
     95  </ItemGroup> 
     96  <ItemGroup> 
     97    <Compile Include="zompi3.png"> 
     98      <Name>zompi3</Name> 
     99      <Importer>TextureImporter</Importer> 
     100      <Processor>TextureProcessor</Processor> 
     101    </Compile> 
     102  </ItemGroup> 
    75103  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    76104  <!--  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.