Changeset 3904


Ignore:
Timestamp:
2012-12-08 14:47:15 (7 years ago)
Author:
anlakane
Message:
 
Location:
2012/27/NikoKi/EpicTankBattle
Files:
98 added
21 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • 2012/27/NikoKi/EpicTankBattle/EpicTankBattle/EpicTankBattle/EpicTankBattle.cs

    r3678 r3904  
    1010{ 
    1111    public bool liikkumassa = false; 
     12    public bool saakoampua = true; 
    1213    public IntMeter hp = new IntMeter(10, 0, 10); 
     14    public IntMeter ajastin = new IntMeter(0, 0, 100); 
    1315    public Tankki(double leveys, double korkeus) 
    1416        : base(leveys, korkeus) 
    1517    { 
    16     } 
     18        ajastin.UpperLimit += lataa; 
     19    } 
     20    public void lataa() 
     21    { 
     22        saakoampua = true; 
     23    } 
     24 
    1725} 
    1826 
     
    2028{ 
    2129    public int tuhovoima = 1; 
     30    public int aika = 1; 
    2231    public Ammus(double leveys, double korkeus) 
    2332        : base(leveys, korkeus) 
     
    3847    Image Mustatankki = LoadImage("Mustatankki"); 
    3948    Image Tykki = LoadImage("Tykki"); 
    40     Image Rajahdys = LoadImage("Rajahdys"); 
     49    Image RajahdysKuva1 = LoadImage("RajahdysKuva1"); 
     50    Image RajahdysKuva2 = LoadImage("RajahdysKuva2"); 
     51    Image RajahdysKuva3 = LoadImage("RajahdysKuva3"); 
    4152    Image Kuula1 = LoadImage("Kuula1"); 
    4253    Image Kuula2 = LoadImage("Kuula2"); 
     
    4556    Image HP = LoadImage("HP"); 
    4657    Image HPtausta = LoadImage("HPtausta"); 
    47  
    48  
    49  
     58    Image Tyhjyys = LoadImage("Tyhjyys"); 
     59    SoundEffect TankkiHuti = LoadSoundEffect("TankkiHuti2"); 
     60    SoundEffect TankkiOsuma = LoadSoundEffect("TankkiOsuma2"); 
     61    SoundEffect TankkiTuhoutuminen = LoadSoundEffect("TankkiTuhoutuminen"); 
     62 
     63    Image[] asekuvat; 
    5064    Tankki P1; 
    5165    Tankki P2; 
     
    5569    Direction tankki2suunta = Direction.Left; 
    5670 
     71    bool pressure; 
     72 
    5773    AmmuksenLuoja[] LuoAmmus; 
    5874    int P1ammus = 0; 
    5975    int P2ammus = 0; 
    6076 
    61     ExplosionSystem rajahdys = 
    62     new ExplosionSystem(LoadImage("Rajahdys"), 1000); 
     77    Widget P1ammusruutu; 
     78    Widget P2ammusruutu; 
     79    Widget P1kehys; 
     80    Widget P2kehys; 
     81 
     82    Explosion rajahdys = 
     83    new Explosion(40); 
     84 
     85    ColorTileMap Maapera; 
    6386 
    6487    public override void Begin() 
    6588    { 
    66         MediaPlayer.Play("Musiikki"); 
    67         MediaPlayer.IsRepeating = true; 
    68  
    69         AlustaAmmukset(); 
    70         rajahdys.MaxScale = 0.01; 
    71         rajahdys.MaxLifetime = 0.001; 
    72         Add(rajahdys); 
    73  
    74         Level.Background.CreateGradient(Color.Silver, Color.Brown); 
     89        ClearAll(); 
    7590        MultiSelectWindow alkuValikko = new MultiSelectWindow("EpicTankBattle", 
    7691        "Aloita peli", "Lopeta"); 
    7792        Add(alkuValikko); 
    78         alkuValikko.ItemSelected += PainettiinValikonNappia; 
    79  
    80         Gravity = new Vector(0, -2000); 
    81  
    82         ColorTileMap Ruudut = ColorTileMap.FromLevelAsset("Maapera"); 
    83         Ruudut.SetTileMethod(Color.Black, LuoNelio); 
    84         Ruudut.Execute(20, 10); 
    85  
    86         PhysicsObject ylaReuna = Level.CreateTopBorder(); 
    87         ylaReuna.Color = Color.Brown; 
    88         PhysicsObject alaReuna = Level.CreateBottomBorder(); 
    89         alaReuna.Color = Color.Brown; 
    90         PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
    91         vasenReuna.Color = Color.Silver; 
    92         PhysicsObject oikeaReuna = Level.CreateRightBorder(); 
    93         oikeaReuna.Color = Color.Silver; 
    94  
    95          
    96         Camera.StayInLevel = false; 
    97         Camera.ZoomToLevel(); 
    98  
    99         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    100         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    101  
    102         P1 = new Tankki(40, 25); 
     93        alkuValikko.ItemSelected += PainettiinValikonNappia;      
     94    } 
     95 
     96    void PainettiinValikonNappia(int valinta) 
     97    { 
     98        switch (valinta) 
     99        { 
     100            case 0: 
     101                Tankki1VariValikko(); 
     102                break; 
     103            case 1: 
     104                Exit(); 
     105                break; 
     106        } 
     107    } 
     108 
     109    void MaaperaValikko() 
     110    { 
     111        MultiSelectWindow MaaperaValikko = new MultiSelectWindow("Valitse kenttä", "Vuori", "Järvi"); 
     112        Add(MaaperaValikko); 
     113        MaaperaValikko.ItemSelected += PainettiinMaaperaValikonNappia; 
     114    } 
     115    void PainettiinMaaperaValikonNappia(int MaaperanValinta) 
     116    { 
     117        ColorTileMap Ruudut; 
     118        ColorTileMap Ruudut2; 
     119        ColorTileMap Ruudut3; 
     120        ColorTileMap Ruudut4; 
     121        ColorTileMap Ruudut5; 
     122 
     123        switch (MaaperanValinta) 
     124        { 
     125            case 0: 
     126                // Multa 
     127                Ruudut = ColorTileMap.FromLevelAsset("Maapera"); 
     128                Ruudut.SetTileMethod(Color.Black, LuoNelio); 
     129                Ruudut.Execute(20, 8); 
     130                // Ruoho 
     131                Ruudut2 = ColorTileMap.FromLevelAsset("Maapera"); 
     132                Ruudut2.SetTileMethod(Color.ForestGreen, LuoNelio2); 
     133                Ruudut2.Execute(20, 8); 
     134                // Vesi 
     135                Ruudut3 = ColorTileMap.FromLevelAsset("Maapera"); 
     136                Ruudut3.SetTileMethod(Color.Aqua, LuoNelio3); 
     137                Ruudut3.Execute(20, 8); 
     138                // Laava 
     139                Ruudut4 = ColorTileMap.FromLevelAsset("Maapera"); 
     140                Ruudut4.SetTileMethod(Color.Red, LuoNelio4); 
     141                Ruudut4.Execute(20, 8); 
     142                // Kallio 
     143                Ruudut5 = ColorTileMap.FromLevelAsset("Maapera"); 
     144                Ruudut5.SetTileMethod(Color.Gray, LuoNelio5); 
     145                Ruudut5.Execute(20, 8); 
     146                break; 
     147            case 1: 
     148                // Multa 
     149                Ruudut = ColorTileMap.FromLevelAsset("Maapera2"); 
     150                Ruudut.SetTileMethod(Color.Black, LuoNelio); 
     151                Ruudut.Execute(20, 8); 
     152                // Ruoho 
     153                Ruudut2 = ColorTileMap.FromLevelAsset("Maapera2"); 
     154                Ruudut2.SetTileMethod(Color.ForestGreen, LuoNelio2); 
     155                Ruudut2.Execute(20, 8); 
     156                // Vesi 
     157                Ruudut3 = ColorTileMap.FromLevelAsset("Maapera2"); 
     158                Ruudut3.SetTileMethod(Color.Aqua, LuoNelio3); 
     159                Ruudut3.Execute(20, 8); 
     160                // Laava 
     161                Ruudut4 = ColorTileMap.FromLevelAsset("Maapera2"); 
     162                Ruudut4.SetTileMethod(Color.Red, LuoNelio4); 
     163                Ruudut4.Execute(20, 8); 
     164                // Kallio 
     165                Ruudut5 = ColorTileMap.FromLevelAsset("Maapera2"); 
     166                Ruudut5.SetTileMethod(Color.Gray, LuoNelio5); 
     167                Ruudut5.Execute(20, 8); 
     168                break; 
     169        } 
     170        Aloitapeli(); 
     171    } 
     172    void Tankki1VariValikko() 
     173    { 
     174        LuoTankit(); 
     175        MultiSelectWindow P1VariValikko = new MultiSelectWindow("Valitse Pelaaja 1 väri", 
     176        "Punainen", "Vihreä", "Sininen", "Keltainen", "Valkoinen", "Musta"); 
     177        Add(P1VariValikko); 
     178        P1VariValikko.ItemSelected += PainettiinP1VariValikonNappia; 
     179    } 
     180    void PainettiinP1VariValikonNappia(int valinta2) 
     181    { 
     182        switch (valinta2) 
     183        { 
     184            case 0: 
     185                P1.Image = LoadImage("Punainentankki"); 
     186                P1tykki.Image = LoadImage("Tykki"); 
     187                Tankki2VariValikko(); 
     188                break; 
     189            case 1: 
     190                P1.Image = LoadImage("Vihreatankki"); 
     191                P1tykki.Image = LoadImage("Tykki"); 
     192                Tankki2VariValikko(); 
     193                break; 
     194            case 2: 
     195                P1.Image = LoadImage("Sininentankki"); 
     196                P1tykki.Image = LoadImage("Tykki"); 
     197                Tankki2VariValikko(); 
     198                break; 
     199            case 3: 
     200                P1.Image = LoadImage("Keltainentankki"); 
     201                P1tykki.Image = LoadImage("Tykki"); 
     202                Tankki2VariValikko(); 
     203                break; 
     204            case 4: 
     205                P1.Image = LoadImage("Valkoinentankki"); 
     206                P1tykki.Image = LoadImage("Tykki"); 
     207                Tankki2VariValikko(); 
     208                break; 
     209            case 5: 
     210                P1.Image = LoadImage("Mustatankki"); 
     211                P1tykki.Image = LoadImage("Tykki"); 
     212                Tankki2VariValikko(); 
     213                break; 
     214        } 
     215    } 
     216 
     217    void Tankki2VariValikko() 
     218    { 
     219        MultiSelectWindow P2VariValikko = new MultiSelectWindow("Valitse Pelaaja 2 väri", 
     220        "Punainen", "Vihreä", "Sininen", "Keltainen", "Valkoinen", "Musta"); 
     221        Add(P2VariValikko); 
     222        P2VariValikko.ItemSelected += PainettiinP2VariValikonNappia; 
     223    } 
     224    void PainettiinP2VariValikonNappia(int valinta3) 
     225    { 
     226        switch (valinta3) 
     227        { 
     228            case 0: 
     229                P2.Image = LoadImage("Punainentankki"); 
     230                P2tykki.Image = LoadImage("Tykki"); 
     231                break; 
     232            case 1: 
     233                P2.Image = LoadImage("Vihreatankki"); 
     234                P2tykki.Image = LoadImage("Tykki"); 
     235                break; 
     236            case 2: 
     237                P2.Image = LoadImage("Sininentankki"); 
     238                P2tykki.Image = LoadImage("Tykki"); 
     239                break; 
     240            case 3: 
     241                P2.Image = LoadImage("Keltainentankki"); 
     242                P2tykki.Image = LoadImage("Tykki"); 
     243                break; 
     244            case 4: 
     245                P2.Image = LoadImage("Valkoinentankki"); 
     246                P2tykki.Image = LoadImage("Tykki"); 
     247                break; 
     248            case 5: 
     249                P2.Image = LoadImage("Mustatankki"); 
     250                P2tykki.Image = LoadImage("Tykki"); 
     251                break; 
     252        } 
     253        MaaperaValikko(); 
     254    } 
     255 
     256    public void LuoTankit() 
     257    { 
     258        Camera.ZoomFactor = 2; 
     259        P1 = new Tankki(25, 24); 
    103260        P1.Tag = "tankki"; 
    104         P1.hp.MaxValue = 50; 
    105         P1.hp.Value = 50; 
    106        // P1.Image = Punainentankki; 
     261        P1.hp.MaxValue = 100; 
     262        P1.hp.Value = 100; 
    107263        P1.Color = Color.Transparent; 
    108264        P1.PlatformTolerance = 1; 
     
    110266        P1.MaxVelocity = 3; 
    111267        P1.KineticFriction = 0; 
    112          
    113  
    114         ProgressBar p1hpPalkki = new ProgressBar(150, 10); 
    115         p1hpPalkki.BindTo(P1.hp); 
    116         p1hpPalkki.BarColor = Color.Green; 
    117         p1hpPalkki.BorderColor = Color.White; 
    118         p1hpPalkki.Color = Color.Red; 
    119         p1hpPalkki.X = Screen.Left + 150; 
    120         p1hpPalkki.Y = Screen.Top - 70; 
    121         Add(p1hpPalkki); 
    122  
    123         P1tykki = new Cannon(60, 7); 
     268        P1.X = -Screen.Width / 6; 
     269        Add(P1); 
     270 
     271        P1tykki = new Cannon(65, 6); 
    124272        P1tykki.Tag = "tykki"; 
    125        // P1tykki.Image = LoadImage("tykki"); 
    126273        P1tykki.Color = Color.Transparent; 
     274        P1tykki.Image = LoadImage("Tyhjyys"); 
    127275        P1tykki.Angle = Angle.StraightAngle; 
    128276        P1.Add(P1tykki); 
    129277 
    130          
    131  
    132         P2 = new Tankki(40, 25); 
     278        P2 = new Tankki(25, 24); 
    133279        P2.Tag = "tankki"; 
    134         P2.hp.MaxValue = 50; 
    135         P2.hp.Value = 50; 
    136        // P2.Image = Vihreatankki; 
     280        P2.hp.MaxValue = 100; 
     281        P2.hp.Value = 100; 
    137282        P2.Color = Color.Transparent; 
    138283        P2.PlatformTolerance = 1; 
    139284        P2.FacingDirection = Direction.Left; 
     285        P2.X = Screen.Width / 6; 
    140286        Add(P2); 
     287 
     288        P2tykki = new Cannon(65, 6); 
     289        P2tykki.Tag = "tykki"; 
     290        P2tykki.Image = LoadImage("Tyhjyys"); 
     291        P2tykki.Color = Color.Transparent; 
     292        P2.Add(P2tykki); 
     293    } 
     294 
     295    public void Aloitapeli() 
     296    { 
     297        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     298        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Begin, "Lopeta peli"); 
    141299         
    142  
    143         ProgressBar p2hpPalkki = new ProgressBar(150, 10); 
     300        MediaPlayer.Play("8-Bit it is"); 
     301        MediaPlayer.IsRepeating = true; 
     302        pressure = false; 
     303 
     304        asekuvat = new Image[4]; 
     305        asekuvat[0] = Kuula1; 
     306        asekuvat[1] = Kuula2; 
     307        asekuvat[2] = Kuula3; 
     308        asekuvat[3] = Kuula4; 
     309 
     310        AlustaAmmukset(); 
     311 
     312        Level.Background.CreateGradient(Color.Turquoise, Color.White); 
     313        
     314 
     315        Gravity = new Vector(0, -2000); 
     316 
     317        Camera.StayInLevel = false; 
     318        Camera.ZoomToLevel(); 
     319 
     320        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     321        ylaReuna.Color = Color.Charcoal; 
     322        ylaReuna.Height = 500; 
     323        ylaReuna.Bottom = Level.Top; 
     324        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     325        alaReuna.Color = Color.Charcoal; 
     326        alaReuna.Height = 500; 
     327        alaReuna.Top = Level.Bottom; 
     328        PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     329        vasenReuna.Color = Color.Charcoal; 
     330        PhysicsObject oikeaReuna = Level.CreateRightBorder(); 
     331        oikeaReuna.Color = Color.Charcoal; 
     332 
     333        P1kehys = new Widget(400, 250); 
     334        P1kehys.X = Screen.Left + 200; 
     335        P1kehys.Y = Screen.Top - 55; 
     336        P1kehys.Color = Color.White; 
     337        Add(P1kehys); 
     338 
     339        P2kehys = new Widget(400, 250); 
     340        P2kehys.X = Screen.Right - 200; 
     341        P2kehys.Y = Screen.Top - 55; 
     342        P2kehys.Color = Color.White; 
     343        Add(P2kehys); 
     344 
     345        P1ammusruutu = new Widget(50, 50); 
     346        P1ammusruutu.X = Screen.Left + 325; 
     347        P1ammusruutu.Y = Screen.Top - 75; 
     348        VaihdaP1Asekuva(); 
     349        Add(P1ammusruutu); 
     350 
     351        P2ammusruutu = new Widget(50, 50); 
     352        P2ammusruutu.X = Screen.Right - 325; 
     353        P2ammusruutu.Y = Screen.Top - 75; 
     354        VaihdaP2Asekuva(); 
     355        Add(P2ammusruutu); 
     356 
     357         
     358 
     359        ProgressBar p1hpPalkki = new ProgressBar(200, 20); 
     360        p1hpPalkki.BindTo(P1.hp); 
     361        p1hpPalkki.BarColor = Color.LimeGreen; 
     362        p1hpPalkki.BorderColor = Color.Black; 
     363        p1hpPalkki.Color = Color.LightGray; 
     364        p1hpPalkki.X = Screen.Left + 150; 
     365        p1hpPalkki.Y = Screen.Top - 50; 
     366        Add(p1hpPalkki); 
     367 
     368         
     369 
     370        ProgressBar P1ammusPalkki = new ProgressBar(200, 20); 
     371        P1ammusPalkki.BindTo(P1.ajastin); 
     372        P1ammusPalkki.X = Screen.Left + 150; 
     373        P1ammusPalkki.Y = Screen.Top - 100; 
     374        P1ammusPalkki.BarColor = Color.Red; 
     375        P1ammusPalkki.BorderColor = Color.Black; 
     376        P1ammusPalkki.Color = Color.LightGray; 
     377        Add(P1ammusPalkki); 
     378 
     379         
     380 
     381        ProgressBar p2hpPalkki = new ProgressBar(200, 20); 
    144382        p2hpPalkki.BindTo(P2.hp); 
    145383        p2hpPalkki.Angle += Angle.FromDegrees(180); 
    146         p2hpPalkki.BarColor = Color.Green; 
    147         p2hpPalkki.BorderColor = Color.White; 
    148         p2hpPalkki.Color = Color.Red; 
     384        p2hpPalkki.BarColor = Color.LimeGreen; 
     385        p2hpPalkki.BorderColor = Color.Black; 
     386        p2hpPalkki.Color = Color.LightGray; 
    149387        p2hpPalkki.X = Screen.Right - 150; 
    150         p2hpPalkki.Y = Screen.Top - 70; 
     388        p2hpPalkki.Y = Screen.Top - 50; 
    151389        Add(p2hpPalkki); 
    152390 
     391        ProgressBar P2ammusPalkki = new ProgressBar(200, 20); 
     392        P2ammusPalkki.BindTo(P2.ajastin); 
     393        P2ammusPalkki.X = Screen.Right - 150; 
     394        P2ammusPalkki.Y = Screen.Top - 100; 
     395        P2ammusPalkki.Angle += Angle.FromDegrees(180); 
     396        P2ammusPalkki.BarColor = Color.Red; 
     397        P2ammusPalkki.BorderColor = Color.Black; 
     398        P2ammusPalkki.Color = Color.LightGray; 
     399        Add(P2ammusPalkki); 
     400 
    153401        P1.hp.LowerLimit += delegate 
    154402        { 
    155403            P1.Destroy(); 
     404            P1 = null; 
     405            PlaySound("TankkiTuhoutuminen"); 
    156406            p1hpPalkki.Destroy(); 
    157407            p2hpPalkki.Destroy(); 
     408            P1ammusPalkki.Destroy(); 
     409            P2ammusPalkki.Destroy(); 
     410            P1ammusruutu.Destroy(); 
     411            P2ammusruutu.Destroy(); 
     412            P1kehys.Destroy(); 
     413            P2kehys.Destroy(); 
    158414            MessageDisplay.Add("Pelaaja1 kuoli"); 
    159415            Timer.SingleShot(5.0, delegate 
     
    163419            }); 
    164420        }; 
    165         Add(P1); 
     421         
     422 
    166423        P2.hp.LowerLimit += delegate 
    167424        { 
     425 
    168426            P2.Destroy(); 
     427            P2 = null; 
     428            PlaySound("TankkiTuhoutuminen"); 
    169429            p1hpPalkki.Destroy(); 
    170430            p2hpPalkki.Destroy(); 
     431            P1ammusPalkki.Destroy(); 
     432            P2ammusPalkki.Destroy(); 
     433            P1ammusruutu.Destroy(); 
     434            P2ammusruutu.Destroy(); 
     435            P1kehys.Destroy(); 
     436            P2kehys.Destroy(); 
    171437            MessageDisplay.Add("Pelaaja2 kuoli"); 
    172438            Timer.SingleShot(5.0, delegate 
     
    176442            }); 
    177443        }; 
    178         Add(P1); 
    179  
    180         P1.X = -700; 
     444 
     445        AddCollisionHandler(P1, "nelio3", Tankkiosuulaavaan); 
     446        AddCollisionHandler(P2, "nelio3", Tankkiosuulaavaan); 
     447 
     448        P1.X = -750; 
    181449        P1.Y = 10; 
    182         P2.X = 700; 
     450        P2.X = 750; 
    183451        P2.Y = 10; 
    184452 
    185         P2tykki = new Cannon(60, 7); 
    186         P2tykki.Tag = "tykki"; 
    187        // P2tykki.Image = LoadImage("tykki"); 
    188         P1tykki.Color = Color.Transparent; 
    189         P2.Add(P2tykki); 
    190  
    191453        Nappaimisto(); 
     454 
     455        Timer ajastin = new Timer(); 
     456        ajastin.Interval = 0.01; 
     457        ajastin.Timeout += delegate 
     458        { 
     459            if (P1 != null) P1.ajastin.Value++; 
     460            if (P2 != null) P2.ajastin.Value++; 
     461        }; 
     462        ajastin.Start(); 
     463 
     464        /* 
     465        Timer vesiajastin = new Timer(); 
     466        vesiajastin.Interval = 3; 
     467        vesiajastin.Timeout += delegate 
     468        { 
     469            foreach (PhysicsObject vesi in GetObjectsWithTag("nelio3")) 
     470            { 
     471                List<GameObject> osuma = GetObjectsAt(vesi.Position + new Vector(0, -8)); 
     472                if (osuma.Count <= 1) 
     473                { 
     474                    vesi.Position += new Vector(0, -8); 
     475                } 
     476            } 
     477        }; 
     478        vesiajastin.Start(); 
     479        */ 
     480    } 
     481 
     482    void Tankkiosuulaavaan(PhysicsObject Tankki, PhysicsObject Laava) 
     483    { 
     484        if (Tankki == P1) 
     485        { 
     486            P1.hp.Value -= 2; 
     487        } 
     488        if (Tankki == P2) 
     489        { 
     490            P2.hp.Value -= 2; 
     491        } 
    192492    } 
    193493 
     
    212512    } 
    213513 
    214     void LiikutaP1(PlatformCharacter2 P1, Vector liike) 
    215     { 
    216  
    217         // LiikutaP1.Velocity = LiikutaP1.Velocity + Liike; 
    218  
     514    void LuoNelio2(Vector paikka, double leveys, double korkeus) 
     515    { 
     516        PhysicsObject nelio2 = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     517        nelio2.Position = paikka; 
     518        nelio2.Color = Color.BrownGreen; 
     519        nelio2.CollisionIgnoreGroup = 1; 
     520        nelio2.KineticFriction = 0; 
     521        nelio2.Tag = "nelio2"; 
     522        Add(nelio2); 
     523    } 
     524 
     525    void LuoNelio3(Vector paikka, double leveys, double korkeus) 
     526    { 
     527        PhysicsObject nelio3 = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     528        nelio3.Position = paikka; 
     529        nelio3.Color = new Color(250, 20, 0, 158);  
     530        nelio3.CollisionIgnoreGroup = 0; 
     531        nelio3.IgnoresCollisionResponse = true; 
     532        nelio3.KineticFriction = 0; 
     533        nelio3.Tag = "nelio3"; 
     534        Add(nelio3); 
     535    } 
     536 
     537    void LuoNelio4(Vector paikka, double leveys, double korkeus) 
     538    { 
     539        PhysicsObject nelio4 = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     540        nelio4.Position = paikka; 
     541        nelio4.Color = Color.Red; 
     542        nelio4.CollisionIgnoreGroup = 1; 
     543        nelio4.KineticFriction = 0; 
     544        nelio4.Tag = "nelio4"; 
     545        Add(nelio4); 
     546    } 
     547 
     548    void LuoNelio5(Vector paikka, double leveys, double korkeus) 
     549    { 
     550        PhysicsObject nelio5 = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     551        nelio5.Position = paikka; 
     552        nelio5.Color = Color.Charcoal; 
     553        nelio5.CollisionIgnoreGroup = 1; 
     554        nelio5.KineticFriction = 0; 
     555        nelio5.Tag = "nelio5"; 
     556        Add(nelio5); 
    219557    } 
    220558 
    221559    void Nappaimisto() 
    222560    { 
    223         Vector vasemmalle = new Vector(-1400, 1400); 
    224         Vector oikealle = new Vector(1400, 1400); 
     561        Vector vasemmalle = new Vector(-1400, 1450); 
     562        Vector oikealle = new Vector(1400, 1450); 
    225563 
    226564        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, null, P1, vasemmalle); 
     
    230568        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, null, P2, oikealle); 
    231569 
    232         Keyboard.Listen(Key.LeftControl, ButtonState.Down, Ammu, null, P1); 
    233         Keyboard.Listen(Key.RightControl, ButtonState.Down, Ammu, null, P2); 
    234  
    235570        Keyboard.Listen(Key.W, ButtonState.Down, KaannaTykki1, null, P1tykki, 2); 
    236571        Keyboard.Listen(Key.S, ButtonState.Down, KaannaTykki1, null, P1tykki, -2); 
     
    239574        Keyboard.Listen(Key.Up, ButtonState.Down, KaannaTykki2, null, P2tykki, -2); 
    240575 
    241         Keyboard.Listen(Key.LeftControl, ButtonState.Pressed, Ammu, null, P1, P1tykki); 
    242         Keyboard.Listen(Key.RightControl, ButtonState.Pressed, Ammu, null, P2, P2tykki); 
     576        Keyboard.Listen(Key.LeftControl, ButtonState.Down, Ammu, null, P1, P1tykki); 
     577        Keyboard.Listen(Key.RightControl, ButtonState.Down, Ammu, null, P2, P2tykki); 
    243578 
    244579        Keyboard.Listen(Key.LeftShift, ButtonState.Pressed, VaihdaP1, null); 
     
    269604                P2tykki.Angle = new Vector(-v.X, v.Y).Angle; 
    270605            } 
    271  
    272606        } 
    273607 
     
    287621            } 
    288622        } 
    289  
    290         // Tankki.Walk(Direction.Left); 
    291623        tankki.Push(liike); 
    292     } 
    293  
    294     void Ammu(PlatformCharacter2 Tankki) 
    295     { 
    296         //    Tankki.Shoot(1000000); 
    297624    } 
    298625 
     
    307634            uusikulma = tykinkulma - suunta; 
    308635 
    309         if ((tankki1suunta == Direction.Right && uusikulma <= -90 && uusikulma >= -180) || 
    310             (tankki1suunta == Direction.Left && uusikulma <= 0 && uusikulma >= -90)) 
     636        if ((tankki1suunta == Direction.Right && uusikulma <= -89 && uusikulma >= -181) || 
     637            (tankki1suunta == Direction.Left && uusikulma <= 1 && uusikulma >= -91)) 
    311638        { 
    312639            tykki.Angle = Angle.FromDegrees(uusikulma); 
     
    324651            uusikulma = tykinkulma + suunta; 
    325652 
    326         if ((tankki2suunta == Direction.Right && uusikulma <= -90 && uusikulma >= -180) || 
    327             (tankki2suunta == Direction.Left && uusikulma <= 0 && uusikulma >= -90)) 
     653        if ((tankki2suunta == Direction.Right && uusikulma <= -89 && uusikulma >= -181) || 
     654            (tankki2suunta == Direction.Left && uusikulma <= 1 && uusikulma >= -91)) 
    328655        { 
    329656            tykki.Angle = Angle.FromDegrees(uusikulma); 
     
    333660    void Ammu(PhysicsObject pelaaja, Cannon tykki) 
    334661    { 
    335         PhysicsObject ammus; 
    336  
    337         if (pelaaja == P1) 
     662        Ammus ammus = null; 
     663 
     664        if (pelaaja == P1 && P1.saakoampua) 
    338665        { 
    339666            ammus = LuoAmmus[P1ammus](); 
    340         } 
    341         else 
     667            P1.ajastin.MaxValue = ammus.aika; 
     668            P1.ajastin.Value = 0; 
     669            P1.saakoampua = false; 
     670        } 
     671 
     672        if (pelaaja == P2 && P2.saakoampua) 
    342673        { 
    343674            ammus = LuoAmmus[P2ammus](); 
    344         } 
    345  
    346         ammus.Position = pelaaja.Position - Vector.FromLengthAndAngle(tykki.Width / 2, tykki.Angle); 
    347         //ammus.LifetimeLeft = TimeSpan.FromMilliseconds(500); 
    348         Add(ammus); 
    349  
    350         ammus.Hit(-2000 * Vector.FromAngle(tykki.Angle)); 
    351         AddCollisionHandler(ammus, "nelio", Osuumaahan); 
    352         AddCollisionHandler(ammus, "", CollisionHandler.DestroyObject); // seiniä varten 
    353         AddCollisionHandler<PhysicsObject, Tankki>(ammus, "tankki", OsuuPelaajaan); 
     675            P2.ajastin.MaxValue = ammus.aika; 
     676            P2.ajastin.Value = 0; 
     677            P2.saakoampua = false; 
     678        } 
     679 
     680        if (ammus != null) 
     681        { 
     682            ammus.Position = pelaaja.Position - Vector.FromLengthAndAngle(tykki.Width / 2, tykki.Angle); 
     683            ammus.Tag = "ammus"; 
     684            Add(ammus); 
     685            ammus.Hit(-2000 * Vector.FromAngle(tykki.Angle)); 
     686            AddCollisionHandler(ammus, "nelio", Osuumaahan); 
     687            AddCollisionHandler(ammus, "nelio2", Osuumaahan); 
     688            AddCollisionHandler(ammus, "nelio3", Osuulaavaan); 
     689            AddCollisionHandler(ammus, "nelio5", Osuukallioon); 
     690            AddCollisionHandler(ammus, "ammus", Osuuammukseen); 
     691            AddCollisionHandler(ammus, "", CollisionHandler.DestroyObject); // seiniä varten 
     692            AddCollisionHandler<PhysicsObject, Tankki>(ammus, "tankki", OsuuPelaajaan); 
     693        } 
     694    } 
     695 
     696    void OsuuPelaajaan(PhysicsObject ammus, Tankki pelaaja) 
     697    { 
     698        pelaaja.hp.Value -= ((Ammus)ammus).tuhovoima; 
     699        if (pelaaja.hp < 50 && !pressure) 
     700        { 
     701            pressure = true; 
     702            MediaPlayer.Play("8-bit it is (pressure)"); 
     703        } 
     704        ammus.Destroy(); 
     705        LuoRajahdys(ammus.Position, RajahdysKuva2, TankkiOsuma); 
     706 
    354707    } 
    355708 
     
    358711        Ammus.Destroy(); 
    359712        Maa.Destroy(); 
    360         rajahdys.AddEffect(Maa.Position, 20); 
     713        LuoRajahdys(Maa.Position, RajahdysKuva1, TankkiHuti); 
     714    } 
     715 
     716    //void Osuuveteen(PhysicsObject Ammus, PhysicsObject Ammus2); 
     717    //    Ammus.Destroy(); 
     718 
     719    void Osuuammukseen(PhysicsObject Ammus, PhysicsObject Ammus2) 
     720    { 
     721        Ammus.Destroy(); 
     722        Ammus2.Destroy(); 
     723        LuoRajahdys(Ammus.Position, RajahdysKuva3, TankkiOsuma); 
     724    } 
     725 
     726    void Osuukallioon(PhysicsObject Ammus, PhysicsObject Kallio) 
     727    { 
     728        Ammus.Destroy(); 
     729        LuoRajahdys(Ammus.Position, RajahdysKuva2, TankkiOsuma); 
     730    } 
     731 
     732    void Osuulaavaan(PhysicsObject Ammus, PhysicsObject laava) 
     733    { 
     734        Ammus.Destroy(); 
     735        LuoRajahdys(Ammus.Position, RajahdysKuva3, TankkiHuti); 
     736    } 
     737 
     738    void LuoRajahdys(Vector RajahdysPaikka, Image RajahdysKuva, SoundEffect RajahdysAani) 
     739    { 
     740        Explosion Rajahdys = new Explosion(100); 
     741        Rajahdys.Position = RajahdysPaikka; 
     742        Rajahdys.Image = RajahdysKuva; 
     743        Rajahdys.Sound = RajahdysAani; 
     744        Rajahdys.Speed = 500.0; 
     745        Rajahdys.MaxRadius = 100; 
     746        Rajahdys.UseShockWave = false; 
     747        Add(Rajahdys); 
    361748    } 
    362749 
     
    365752        P1ammus++; 
    366753        if (P1ammus >= LuoAmmus.Length) P1ammus = 0; 
     754        VaihdaP1Asekuva(); 
     755    } 
     756 
     757    void VaihdaP1Asekuva() 
     758    { 
     759        Image kuva = asekuvat[P1ammus]; 
     760        P1ammusruutu.Image = kuva; 
     761        P1ammusruutu.Width = kuva.Width; 
     762        P1ammusruutu.Height = kuva.Height; 
    367763    } 
    368764 
     
    371767        P2ammus++; 
    372768        if (P2ammus >= LuoAmmus.Length) P2ammus = 0; 
     769        VaihdaP2Asekuva(); 
     770    } 
     771 
     772    void VaihdaP2Asekuva() 
     773    { 
     774        Image kuva = asekuvat[P2ammus]; 
     775        P2ammusruutu.Image = kuva; 
     776        P2ammusruutu.Width = kuva.Width; 
     777        P2ammusruutu.Height = kuva.Height; 
    373778    } 
    374779 
     
    376781    { 
    377782        Ammus ammus = new Ammus(10, 10); 
    378         ammus.tuhovoima = 2; 
     783        ammus.tuhovoima = 1; 
     784        ammus.aika = 10; 
    379785        ammus.Image = Kuula1; 
    380786        return ammus; 
     
    385791        Ammus ammus = new Ammus(15, 15); 
    386792        ammus.tuhovoima = 4; 
     793        ammus.aika = 20; 
    387794        ammus.Image = Kuula2; 
    388795        ammus.Mass = 1.3; 
     
    395802        ammus.Image = Kuula3; 
    396803        ammus.tuhovoima = 8; 
     804        ammus.aika = 30; 
    397805        ammus.Mass = 1.7; 
    398806        return ammus; 
     
    401809    Ammus LuoNelosAmmus() 
    402810    { 
    403         Ammus ammus = new Ammus(20, 35); 
     811        Ammus ammus = new Ammus(25, 25); 
    404812        ammus.Image = Kuula4; 
    405813        ammus.tuhovoima = 12; 
     814        ammus.aika = 40; 
    406815        ammus.Mass = 3; 
    407816        return ammus; 
    408817    } 
    409  
    410     void OsuuPelaajaan(PhysicsObject ammus, Tankki pelaaja) 
    411     { 
    412         pelaaja.hp.Value--; 
    413     } 
    414  
    415     void AlustaRajahdys() 
    416     { 
    417         //rajahdyssysteemi = new ExplosionSystem(Rajahdys, 5000); 
    418         //rajahdyssysteemi.MinScale = 1; 
    419         //rajahdyssysteemi.MaxScale = 5; 
    420         //Add(rajahdyssysteemi); 
    421     } 
    422     void PainettiinValikonNappia(int valinta) 
    423     { 
    424         switch (valinta) 
    425         { 
    426             case 0: 
    427                 Tankki1VariValikko(); 
    428                 break; 
    429             case 1: 
    430                 Exit(); 
    431                 break; 
    432         } 
    433  
    434  
    435  
    436     } 
    437     void Tankki1VariValikko() 
    438     { 
    439         MultiSelectWindow P1VariValikko = new MultiSelectWindow("Valitse Pelaaja 1 väri", 
    440         "Punainen", "Vihreä", "Sininen", "Keltainen", "Valkoinen", "Musta"); 
    441         Add(P1VariValikko); 
    442         P1VariValikko.ItemSelected += PainettiinP1VariValikonNappia; 
    443     } 
    444     void PainettiinP1VariValikonNappia(int valinta2) 
    445     { 
    446         switch (valinta2) 
    447         { 
    448             case 0: 
    449                 P1.Image = LoadImage("Punainentankki"); 
    450                 P1tykki.Image = LoadImage("Tykki"); 
    451                 Tankki2VariValikko(); 
    452  
    453                 break; 
    454             case 1: 
    455                 P1.Image = LoadImage("Vihreatankki"); 
    456                 P1tykki.Image = LoadImage("Tykki"); 
    457                 Tankki2VariValikko(); 
    458                 break; 
    459             case 2: 
    460                 P1.Image = LoadImage("Sininentankki"); 
    461                 P1tykki.Image = LoadImage("Tykki"); 
    462                 Tankki2VariValikko(); 
    463                 break; 
    464             case 3: 
    465                 P1.Image = LoadImage("Keltainentankki"); 
    466                 P1tykki.Image = LoadImage("Tykki"); 
    467                 Tankki2VariValikko(); 
    468                 break; 
    469             case 4: 
    470                 P1.Image = LoadImage("Valkoinentankki"); 
    471                 P1tykki.Image = LoadImage("Tykki"); 
    472                 Tankki2VariValikko(); 
    473                 break; 
    474             case 5: 
    475                 P1.Image = LoadImage("Mustatankki"); 
    476                 P1tykki.Image = LoadImage("Tykki"); 
    477                 Tankki2VariValikko(); 
    478                 break; 
    479         } 
    480  
    481     } 
    482  
    483     void Tankki2VariValikko() 
    484     { 
    485         MultiSelectWindow P2VariValikko = new MultiSelectWindow("Valitse Pelaaja 2 väri", 
    486         "Punainen", "Vihreä", "Sininen", "Keltainen", "Valkoinen", "Musta"); 
    487         Add(P2VariValikko); 
    488         P2VariValikko.ItemSelected += PainettiinP2VariValikonNappia; 
    489     } 
    490     void PainettiinP2VariValikonNappia(int valinta3) 
    491     { 
    492         switch (valinta3) 
    493         { 
    494             case 0: 
    495                 P2.Image = LoadImage("Punainentankki"); 
    496                 P1tykki.Image = LoadImage("Tykki"); 
    497                 break; 
    498             case 1: 
    499                 P2.Image = LoadImage("Vihreatankki"); 
    500                 P2tykki.Image = LoadImage("Tykki"); 
    501                 break; 
    502             case 2: 
    503                 P2.Image = LoadImage("Sininentankki"); 
    504                 P2tykki.Image = LoadImage("Tykki"); 
    505                 break; 
    506             case 3: 
    507                 P2.Image = LoadImage("Keltainentankki"); 
    508                 P2tykki.Image = LoadImage("Tykki"); 
    509                 break; 
    510             case 4: 
    511                 P2.Image = LoadImage("Valkoinentankki"); 
    512                 P2tykki.Image = LoadImage("Tykki"); 
    513                 break; 
    514             case 5: 
    515                 P2.Image = LoadImage("Mustatankki"); 
    516                 P2tykki.Image = LoadImage("Tykki"); 
    517                 break; 
    518         } 
    519  
    520     } 
    521818} 
    522819 
  • 2012/27/NikoKi/EpicTankBattle/EpicTankBattle/EpicTankBattleContent/EpicTankBattleContent.contentproj

    r3678 r3904  
    7575      <Processor>TextureProcessor</Processor> 
    7676    </Compile> 
    77     <Compile Include="Piikki.png"> 
    78       <Name>Piikki</Name> 
    79       <Importer>TextureImporter</Importer> 
    80       <Processor>TextureProcessor</Processor> 
    81     </Compile> 
    8277    <Compile Include="Punainentankki.png"> 
    8378      <Name>Punainentankki</Name> 
     
    107102  </ItemGroup> 
    108103  <ItemGroup> 
    109     <Compile Include="Rajahdys.png"> 
    110       <Name>Rajahdys</Name> 
     104    <Compile Include="RajahdysKuva1.png"> 
     105      <Name>RajahdysKuva1</Name> 
    111106      <Importer>TextureImporter</Importer> 
    112107      <Processor>TextureProcessor</Processor> 
     
    121116  </ItemGroup> 
    122117  <ItemGroup> 
    123     <Compile Include="Nelio.png"> 
    124       <Name>Nelio</Name> 
     118    <Compile Include="RajahdysKuva2.png"> 
     119      <Name>RajahdysKuva2</Name> 
     120      <Importer>TextureImporter</Importer> 
     121      <Processor>TextureProcessor</Processor> 
     122    </Compile> 
     123    <Compile Include="RajahdysKuva3.png"> 
     124      <Name>RajahdysKuva3</Name> 
    125125      <Importer>TextureImporter</Importer> 
    126126      <Processor>TextureProcessor</Processor> 
     
    128128  </ItemGroup> 
    129129  <ItemGroup> 
    130     <Compile Include="HP.png"> 
    131       <Name>HP</Name> 
    132       <Importer>TextureImporter</Importer> 
    133       <Processor>TextureProcessor</Processor> 
     130    <Compile Include="TankkiTuhoutuminen.wav"> 
     131      <Name>TankkiTuhoutuminen</Name> 
     132      <Importer>WavImporter</Importer> 
     133      <Processor>SoundEffectProcessor</Processor> 
    134134    </Compile> 
    135     <Compile Include="HPtausta.png"> 
    136       <Name>HPtausta</Name> 
     135  </ItemGroup> 
     136  <ItemGroup> 
     137    <Compile Include="TankkiHuti2.wav"> 
     138      <Name>TankkiHuti2</Name> 
     139      <Importer>WavImporter</Importer> 
     140      <Processor>SoundEffectProcessor</Processor> 
     141    </Compile> 
     142    <Compile Include="TankkiOsuma2.wav"> 
     143      <Name>TankkiOsuma2</Name> 
     144      <Importer>WavImporter</Importer> 
     145      <Processor>SoundEffectProcessor</Processor> 
     146    </Compile> 
     147  </ItemGroup> 
     148  <ItemGroup> 
     149    <Compile Include="8-Bit it is %28pressure%29.mp3"> 
     150      <Name>8-Bit it is %28pressure%29</Name> 
     151      <Importer>Mp3Importer</Importer> 
     152      <Processor>SongProcessor</Processor> 
     153    </Compile> 
     154    <Compile Include="8-Bit it is.mp3"> 
     155      <Name>8-Bit it is</Name> 
     156      <Importer>Mp3Importer</Importer> 
     157      <Processor>SongProcessor</Processor> 
     158    </Compile> 
     159  </ItemGroup> 
     160  <ItemGroup> 
     161    <Compile Include="tyhjyys.png"> 
     162      <Name>tyhjyys</Name> 
    137163      <Importer>TextureImporter</Importer> 
    138164      <Processor>TextureProcessor</Processor> 
     
    140166  </ItemGroup> 
    141167  <ItemGroup> 
    142     <Compile Include="Musiikki.mp3"> 
    143       <Name>Musiikki</Name> 
    144       <Importer>Mp3Importer</Importer> 
    145       <Processor>SongProcessor</Processor> 
     168    <Compile Include="Maapera2.png"> 
     169      <Name>Maapera2</Name> 
     170      <Importer>TextureImporter</Importer> 
     171      <Processor>TextureProcessor</Processor> 
    146172    </Compile> 
    147173  </ItemGroup> 
Note: See TracChangeset for help on using the changeset viewer.