Changeset 1746


Ignore:
Timestamp:
2011-06-08 09:00:22 (8 years ago)
Author:
iltakuop
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/23/iltakuop/Blocks/Blocks/Blocks/Peli.cs

    r1737 r1746  
    1515    PhysicsObject maila; 
    1616    PhysicsObject tnt; 
    17     
     17 
    1818    PhysicsObject alaReuna; 
    19  
    20  
     19    int kenttäNro = 1; 
     20 
     21    int palloolemassa; 
    2122    const int RUUDUN_KOKO = 5; 
    2223 
    2324    Image tntKuva = LoadImage("TNT"); 
    2425    IntMeter pisteet; 
     26    IntMeter elämät; 
    2527 
    2628    List<PhysicsObject> tasot = new List<PhysicsObject>(); 
     
    2830    public override void Begin() 
    2931    { 
    30         LuoKenttä(); 
     32        LuoKenttä(1); 
    3133        AsetaOhjaimet(); 
    32         LisääLaskurit(); 
    33         //AloitaPeli(); 
    34     } 
    35     void LuoPallo(double x, double y) //-170 
    36     { 
    37         pallo = new PhysicsObject(20.0, 20.0); 
    38         pallo.Shape = Shape.Circle; 
    39         pallo.Color = Color.Blue; 
    40         pallo.Restitution = 1.0; 
    41         pallo.X = x; 
    42         pallo.Y = y; 
    43         pallo.CanRotate = false; 
    44         Add(pallo); 
     34        LisääLaskurit(3, 0); 
     35        AloitaPeli(); 
     36    } 
     37    PhysicsObject LuoPallo() //-170 
     38    { 
     39        PhysicsObject pallo1 = new PhysicsObject(20.0, 20.0); 
     40        pallo1.Shape = Shape.Circle; 
     41        pallo1.Color = Color.Blue; 
     42        pallo1.Tag = "pallo"; 
     43        pallo1.Restitution = 1.0; 
     44        pallo1.X = 0; 
     45        pallo1.Y = -170; 
     46        palloolemassa = 1; 
     47        return pallo1; 
    4548    } 
    4649     
    4750     
    48     void LuoKenttä() 
     51    void LuoKenttä(int a) 
    4952    { 
    5053        Level.BackgroundColor = Color.Red;  
    51         LuoPalikat(2); 
    52  
     54        LuoPalikat(a);         
     55        Camera.ZoomToLevel(1); 
     56    } 
     57 
     58    void AloitaPeli() 
     59    { 
     60        maila.X = 0; 
     61        if (palloolemassa == 1) 
     62        { 
     63            pallo.Destroy(); 
     64        } 
     65        pallo = LuoPallo(); 
     66         
    5367        AddCollisionHandler(pallo, KäsittelePallonTörmäys); 
    54         Level.BackgroundColor = Color.Red; 
    55  
    56         Camera.ZoomToLevel(1); 
    57     } 
    58  
    59     void AloitaPeli() 
    60     { 
    61         Vector impulssi = new Vector(0.0, -300.0); 
    62         pallo.Hit(impulssi); 
     68        Add(pallo); 
    6369    } 
    6470 
     
    7177        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 
    7278 
    73         Keyboard.Listen(Key.R, ButtonState.Down, Räjähdys, "Liikuta mailaa vasemmalle", tnt); 
     79        Keyboard.Listen(Key.T, ButtonState.Pressed, AloitaPeli, "Liikuta mailaa vasemmalle"); 
     80        Keyboard.Listen(Key.R, ButtonState.Pressed, Räjähdys, "Liikuta mailaa vasemmalle", tnt); 
    7481         
    7582        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     83        //Keyboard.Listen(Key.F2, ButtonState.Pressed, SeuraavaTaso, "Näytä ohjeet", kenttäNro); 
    7684 
    7785        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     
    8088    } 
    8189 
    82     void LisääLaskurit() 
    83     { 
    84         pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 80.0); 
    85     } 
    86  
    87     IntMeter LuoPisteLaskuri(double x, double y) 
    88     { 
    89         IntMeter laskuri = new IntMeter(0); 
     90    void LisääLaskurit(int elämät, int pisteet) 
     91    { 
     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); 
     94    } 
     95 
     96    IntMeter LuoPisteLaskuri(double x, double y, int määrä) 
     97    { 
     98        IntMeter laskuri = new IntMeter(määrä); 
    9099        //laskuri.MaxValue = 9; 
    91100        Label näyttö = new Label(); 
     
    102111 
    103112    void KäsittelePallonTörmäys(PhysicsObject pallo, PhysicsObject kohde) 
    104     {        
    105  
    106         if (kohde == alaReuna) 
    107         { 
    108             pallo.Destroy(); 
    109             return; 
    110         } 
    111         if (kohde.Tag.ToString() == "taso") 
    112         { 
    113             pisteet.Value += 10; 
    114             Timer.SingleShot(0.01, kohde.Destroy); 
    115             tasot.Remove(kohde); 
    116         } 
    117         if (kohde.Tag.ToString() == "TNT") 
    118         { 
    119             pisteet.Value += 10; 
    120             //Timer.SingleShot(0.01, kohde.Destroy); 
    121             Räjähdys(kohde); 
    122         } 
     113    { 
     114            if (kohde == alaReuna) 
     115            { 
     116                pallo.Destroy(); 
     117                palloolemassa = 0; 
     118                elämät.Value -= 1; 
     119                if (elämät.Value == 0) 
     120                { 
     121                    HävisitPelin(); 
     122                } 
     123                Timer.SingleShot(1, AloitaPeli); 
     124            } 
     125            if (kohde.Tag.ToString() == "taso") 
     126            { 
     127                pisteet.Value += 10; 
     128                Timer.SingleShot(0.01, kohde.Destroy); 
     129                tasot.Remove(kohde); 
     130                if (tasot.Count == 0) 
     131                { 
     132                    SeuraavaTaso(kenttäNro, 3, 0); 
     133                } 
     134            } 
     135            if (kohde.Tag.ToString() == "TNT") 
     136            { 
     137                pisteet.Value += 10; 
     138                Räjähdys(kohde); 
     139                Timer.SingleShot(0.01, kohde.Destroy); 
     140 
     141            } 
    123142        
    124143    } 
     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) 
     151    { 
     152        ClearAll(); 
     153        LuoKenttä(a); 
     154        AsetaOhjaimet(); 
     155        LisääLaskurit(elämät, pisteet); 
     156        AloitaPeli(); 
     157    } 
    125158 
    126159    void Räjähdys(PhysicsObject kohde) 
    127160    { 
    128         GameObject g = new GameObject(15, 15, Shape.Circle); 
    129         g.Position = kohde.Position; 
    130         Add(g); 
     161         
    131162        Explosion rajahdys = new Explosion(10); 
    132         //PhysicsObject räjähdys = new PhysicsObject(180, 80); 
    133         //räjähdys.Position = kohde.Position; 
    134         //räjähdys.IsVisible = false; 
    135         //Add(räjähdys); 
    136         //AddCollisionHandler(räjähdys, KäsitteleRäjähdys); 
    137         //räjähdys.Destroy(); 
    138         //rajahdys.Position = kohde.Position; 
    139         //rajahdys.Force = 0; 
     163        rajahdys.Position = kohde.Position; 
     164        rajahdys.Force = 0; 
    140165        Add(rajahdys); 
    141166 
     
    145170        while(i<tasot.Count) 
    146171        { 
    147             if (Vector.Distance(tasot[i].Position, kohde.Position) < 150) 
     172            if (Vector.Distance(tasot[i].Position, kohde.Position) < 100) 
    148173            { 
    149174                tasot[i].Destroy(); 
    150175                tasot.RemoveAt(i); 
    151                  
     176                pisteet.Value += 10; 
    152177            } 
    153178            else 
     
    158183    } 
    159184 
    160     void KäsitteleRäjähdys(PhysicsObject räjähdys, PhysicsObject kohde) 
    161     { 
    162         if (kohde.Tag.ToString() == "taso") 
    163         { 
    164             Timer.SingleShot(0.01, kohde.Destroy); 
    165             pisteet.Value += 10; 
    166         } 
    167         if (kohde.Tag.ToString() == "TNT") 
    168         { 
    169             Timer.SingleShot(0.01, kohde.Destroy); 
    170             pisteet.Value += 10; 
    171             Räjähdys(kohde); 
    172         } 
    173  
    174     } 
    175185 
    176186   
    177     void LuoPalikat(double x) 
    178     { 
    179         LuoPallo(0, -170); 
     187    void LuoPalikat(int x) 
     188    { 
     189         
    180190        TileMap kentta = TileMap.FromFile("kentta" + x + ".txt"); 
    181191        kentta['#'] = lisaaTaso; 
     
    185195        kentta['_'] = LuoAlaReuna; 
    186196        kentta['y'] = LuoYläReuna; 
    187         //kentta['N'] = lisaaPelaaja; 
    188197        kentta.Insert(40, 40); 
    189198    } 
     
    257266    } 
    258267 
     268    void HävisitPelin() 
     269    { 
     270        MessageDisplay.Add("Hävisit"); 
     271    } 
     272 
    259273    const double PALLON_NOPEUS = 300; 
    260274 
Note: See TracChangeset for help on using the changeset viewer.