Changeset 1751


Ignore:
Timestamp:
2011-06-08 13:17:56 (8 years ago)
Author:
iltakuop
Message:
 
Location:
2011/23/iltakuop/Blocks/Blocks/Blocks
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2011/23/iltakuop/Blocks/Blocks/Blocks/Blocks.csproj

    r1737 r1751  
    116116  </ItemGroup> 
    117117  <ItemGroup> 
     118    <Content Include="kentta3.txt"> 
     119      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     120    </Content> 
    118121    <Content Include="Game.ico" /> 
    119122    <Content Include="GameThumbnail.png" /> 
  • 2011/23/iltakuop/Blocks/Blocks/Blocks/Peli.cs

    r1746 r1751  
    77using Jypeli.Widgets; 
    88 
     9 
     10class Taso2 : PhysicsObject 
     11{ 
     12    public int hitPoints = 2; 
     13    public Taso2() 
     14    : base(40, 10) 
     15    { 
     16             
     17    } 
     18 
     19 
     20} 
     21 
     22 
     23 
     24 
     25 
    926public class Peli : PhysicsGame 
    1027{ 
     
    1835    PhysicsObject alaReuna; 
    1936    int kenttäNro = 1; 
     37    int kenttäMäärä = 3; 
    2038 
    2139    int palloolemassa; 
     
    2341 
    2442    Image tntKuva = LoadImage("TNT"); 
    25     IntMeter pisteet; 
    26     IntMeter elämät; 
     43    Image tasoKuva = LoadImage("Palikka"); 
     44    Image taso2Kuva = LoadImage("Vahvistettu palikka"); 
     45    Image taso2Kuva2 = LoadImage("Vahvistettu palikka2"); 
     46    int pisteet; 
     47    int elämät = 3; 
     48    IntMeter pisteetL; 
     49    IntMeter elämätL; 
    2750 
    2851    List<PhysicsObject> tasot = new List<PhysicsObject>(); 
     52    List<PhysicsObject> taso2t = new List<PhysicsObject>(); 
     53    List<PhysicsObject> tntt = new List<PhysicsObject>(); 
    2954 
    3055    public override void Begin() 
     
    78103 
    79104        Keyboard.Listen(Key.T, ButtonState.Pressed, AloitaPeli, "Liikuta mailaa vasemmalle"); 
    80         Keyboard.Listen(Key.R, ButtonState.Pressed, Räjähdys, "Liikuta mailaa vasemmalle", tnt); 
     105        //Keyboard.Listen(Key.R, ButtonState.Pressed, DebugRäjäytys, "Liikuta mailaa vasemmalle"); 
    81106         
    82107        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    83         //Keyboard.Listen(Key.F2, ButtonState.Pressed, SeuraavaTaso, "Näytä ohjeet", kenttäNro); 
     108        Keyboard.Listen(Key.F2, ButtonState.Pressed, SeuraavaTaso, "Näytä ohjeet"); 
    84109 
    85110        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     
    87112 
    88113    } 
     114    //void DebugRäjäytys() {  Räjähdys(tnt.Position); } 
    89115 
    90116    void LisääLaskurit(int elämät, int pisteet) 
    91117    { 
    92         pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 80.0, pisteet); 
    93         elämät = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 80.0, elämät); 
     118        pisteetL = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 80.0, pisteet); 
     119        elämätL = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 80.0, elämät); 
    94120    } 
    95121 
     
    116142                pallo.Destroy(); 
    117143                palloolemassa = 0; 
    118                 elämät.Value -= 1; 
    119                 if (elämät.Value == 0) 
     144                elämät -= 1; 
     145                if (elämät == 0) 
    120146                { 
    121147                    HävisitPelin(); 
    122148                } 
    123                 Timer.SingleShot(1, AloitaPeli); 
     149                else Timer.SingleShot(1, AloitaPeli); 
    124150            } 
    125151            if (kohde.Tag.ToString() == "taso") 
    126152            { 
    127                 pisteet.Value += 10; 
     153                pisteet += 100; 
    128154                Timer.SingleShot(0.01, kohde.Destroy); 
    129155                tasot.Remove(kohde); 
    130                 if (tasot.Count == 0) 
     156                TarkistaVoitto(); 
     157            } 
     158            if (kohde.Tag.ToString() == "taso2") 
     159            { 
     160                Taso2 taso2 = (Taso2)kohde; 
     161                taso2.hitPoints--; 
     162                if (taso2.hitPoints == 1) 
     163                { taso2.Image = taso2Kuva2; } 
     164                else if (taso2.hitPoints == 0) 
    131165                { 
    132                     SeuraavaTaso(kenttäNro, 3, 0); 
     166                    Timer.SingleShot(0.01, kohde.Destroy); 
     167                    pisteet += 300; 
    133168                } 
     169                taso2t.Remove(kohde); 
     170                TarkistaVoitto(); 
    134171            } 
    135172            if (kohde.Tag.ToString() == "TNT") 
    136173            { 
    137                 pisteet.Value += 10; 
    138                 Räjähdys(kohde); 
     174                pisteet += 100; 
     175                Räjähdys(kohde.Position); 
    139176                Timer.SingleShot(0.01, kohde.Destroy); 
    140  
    141             } 
     177                TarkistaVoitto(); 
     178            } 
     179            pisteetL.Value = pisteet; 
     180            elämätL.Value = elämät; 
    142181        
    143182    } 
    144     void SeuraavaTaso(int a, int elämät, int pisteet) 
    145     { 
    146         a += 1; 
    147         SeuraavaTaso2(a, elämät, pisteet); 
    148          
    149     } 
    150     void SeuraavaTaso2(int a, int elämät, int pisteet) 
     183    void TarkistaVoitto() 
     184    { 
     185        if ((tasot.Count == 0) && (tntt.Count == 0)) 
     186        { 
     187            Timer.SingleShot(1, SeuraavaTaso); 
     188        } 
     189    } 
     190    void SeuraavaTaso() 
     191    { 
     192        tasot.Clear(); 
     193        tntt.Clear(); 
     194        kenttäNro += 1; 
     195        if (kenttäNro > kenttäMäärä) 
     196        { 
     197            ClearAll(); 
     198            Label tekstikentta = new Label("Voitit"); 
     199            Add(tekstikentta); 
     200            Timer.SingleShot(5, Exit); 
     201        } 
     202        else 
     203        { 
     204            ClearAll(); 
     205            Label tekstikentta = new Label("Pääsit seuraavaan tasoon"); 
     206            Add(tekstikentta); 
     207            Timer.SingleShot(2, SeuraavaTaso2); 
     208        } 
     209         
     210    } 
     211    void SeuraavaTaso2() 
    151212    { 
    152213        ClearAll(); 
    153         LuoKenttä(a); 
     214        LuoKenttä(kenttäNro); 
    154215        AsetaOhjaimet(); 
    155216        LisääLaskurit(elämät, pisteet); 
     
    157218    } 
    158219 
    159     void Räjähdys(PhysicsObject kohde) 
     220    void Räjähdys(Vector kohde) 
    160221    { 
    161222         
    162223        Explosion rajahdys = new Explosion(10); 
    163         rajahdys.Position = kohde.Position; 
     224        rajahdys.Position = kohde; 
    164225        rajahdys.Force = 0; 
    165226        Add(rajahdys); 
     
    170231        while(i<tasot.Count) 
    171232        { 
    172             if (Vector.Distance(tasot[i].Position, kohde.Position) < 100) 
     233            if (((tasot[i].X - kohde.X) < 100) && ((tasot[i].X - kohde.X) > -100)  
     234                && ((tasot[i].Y - kohde.Y) < 80) && ((tasot[i].Y - kohde.Y) > -80)) 
    173235            { 
    174236                tasot[i].Destroy(); 
    175237                tasot.RemoveAt(i); 
    176                 pisteet.Value += 10; 
     238                pisteet += 100; 
     239                pisteetL.Value = pisteet; 
    177240            } 
    178241            else 
    179242            { 
    180243                i++; 
     244            } 
     245        } 
     246        int o = 0; 
     247        while (o<tntt.Count) 
     248        { 
     249            if (((tntt[o].X - kohde.X) < 100) && ((tntt[o].X - kohde.X) > -100) 
     250                && ((tntt[o].Y - kohde.Y) < 80) && ((tntt[o].Y - kohde.Y) > -80)) 
     251            { 
     252                Vector räjähdysPaikka = tntt[o].Position; 
     253                tntt[o].Destroy(); 
     254                tntt.RemoveAt(o); 
     255                pisteet += 100; 
     256                pisteetL.Value = pisteet; 
     257                Räjähdys(räjähdysPaikka); 
     258         
     259            } 
     260            else 
     261            { 
     262                o++; 
    181263            } 
    182264        } 
     
    190272        TileMap kentta = TileMap.FromFile("kentta" + x + ".txt"); 
    191273        kentta['#'] = lisaaTaso; 
     274        kentta['!'] = lisaaTaso2; 
    192275        kentta['*'] = lisaaTNT; 
    193276        kentta['m'] = LuoMaila; 
     
    201284    { 
    202285        PhysicsObject taso = PhysicsObject.CreateStaticObject(40, 10); 
    203         taso.Color = Color.Green; 
    204286        taso.Tag = "taso"; 
     287        taso.Image = tasoKuva; 
    205288        taso.Restitution = 1.0; 
    206289        tasot.Add(taso); 
     
    208291    } 
    209292 
     293    PhysicsObject lisaaTaso2() 
     294    { 
     295        Taso2 taso2 = new Taso2(); 
     296        taso2.Tag = "taso2"; 
     297        taso2.Image = taso2Kuva; 
     298        taso2.Restitution = 1.0; 
     299        taso2t.Add(taso2); 
     300        return taso2; 
     301    } 
     302 
    210303    PhysicsObject lisaaTNT() 
    211304    { 
    212305        tnt = PhysicsObject.CreateStaticObject(40, 10); 
    213         //tnt.Image = tntKuva; 
     306        tnt.Image = tntKuva; 
     307        tnt.Restitution = 1; 
     308        tntt.Add(tnt); 
    214309        tnt.Tag = "TNT"; 
    215310         
     
    222317        maila.Shape = Shape.Rectangle; 
    223318        maila.Restitution = 1.0; 
     319        maila.Color = Color.Green; 
    224320        return maila; 
    225321    } 
     
    268364    void HävisitPelin() 
    269365    { 
    270         MessageDisplay.Add("Hävisit"); 
     366        ClearAll(); 
     367        Label tekstikentta = new Label("Hävisit. Sait " + pisteet + " pistettä"); 
     368        Add(tekstikentta); 
     369        Timer.SingleShot(3, Exit); 
    271370    } 
    272371 
     
    278377        { 
    279378            pallo.Velocity = new Vector(pallo.Velocity.X, pallo.Velocity.Y * 1.1); 
     379 
    280380        } 
    281381        base.Update(time); 
  • 2011/23/iltakuop/Blocks/Blocks/Blocks/kentta2.txt

    r1737 r1751  
    22 # # # # # # # # # 
    33 # # # # # # # # # 
     4 # # # # * # # # # 
    45 # # # # * # # # # 
    56 # # # # # # # # # 
     
    89 
    910                  
    10                   
    1111         m         
    1212         _ 
Note: See TracChangeset for help on using the changeset viewer.