Changeset 1183 for 2010/27/sijoseha


Ignore:
Timestamp:
2010-07-08 13:57:38 (9 years ago)
Author:
sijoseha
Message:
 
Location:
2010/27/sijoseha/BuildingBuilder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/sijoseha/BuildingBuilder/BuildingBuilder.csproj

    r1145 r1183  
    5757  </PropertyGroup> 
    5858  <ItemGroup> 
    59     <Reference Include="Jypeli2, Version=2.2.2.0, Culture=neutral, processorArchitecture=x86"> 
     59    <Reference Include="Jypeli2, Version=2.2.3.0, Culture=neutral, processorArchitecture=x86"> 
    6060      <SpecificVersion>False</SpecificVersion> 
    6161      <HintPath>..\..\lib\Jypeli2.dll</HintPath> 
  • 2010/27/sijoseha/BuildingBuilder/Content/Content.contentproj

    r1118 r1183  
    4141    </Compile> 
    4242  </ItemGroup> 
     43  <ItemGroup> 
     44    <Compile Include="perfectText.png"> 
     45      <Name>perfectText</Name> 
     46      <Importer>TextureImporter</Importer> 
     47      <Processor>TextureProcessor</Processor> 
     48    </Compile> 
     49  </ItemGroup> 
    4350</Project> 
  • 2010/27/sijoseha/BuildingBuilder/Peli.cs

    r1139 r1183  
    44using Jypeli.Widgets; 
    55using Jypeli.Assets; 
     6using Jypeli.Effects; 
    67 
    78public class Peli : PhysicsGame 
    89{ 
    9     PhysicsObject newestBlock, hittedBlock, dropArrow, ground; 
    10     //Queue<PhysicsObject> tower; 
     10    PhysicsObject newestBlock, dropArrow, ground; 
    1111    Stack<PhysicsObject> tower; 
    1212    enum DropArrowDirection 
     
    1616    } 
    1717    DropArrowDirection dAD; 
    18     Image dropArrowImage; 
     18    Image dropArrowImage, perfect; 
    1919    Boolean drop, cameraMoving; 
    2020    WandererBrain dropArrowBrain; 
    21     double startZoom; 
     21    double startZoom, towerH; 
     22    Label towerHeight; 
     23    ParticleSystem scoreEffect; 
     24    HighScoreList highestTowers; 
    2225 
    2326    protected override void Begin() 
    2427    { 
    2528        LoadContent(); 
    26         CreateLevel(); 
    27         Keyboard.Listen(Key.Space, ButtonState.Released, CreateBlock, ""); 
    28         //CreateBlock(new Vector(0, 200)); 
    29         //CreateBlock(new Vector(10, 350)); 
    30         //CreateBlock(new Vector(-10, 500)); 
     29 
     30        StartGame(); 
     31         
     32        LoadEffect(); 
    3133    } 
    3234    void LoadContent() 
    3335    { 
    3436        dropArrowImage = LoadImage("dropArrow"); 
    35     } 
    36     void CreateLevel() 
    37     { 
     37        perfect = LoadImage("perfectText"); 
     38        highestTowers = HighScoreList.LoadOrCreate("highestTowers.cmo", 20); 
     39    } 
     40 
     41    void LoadEffect() 
     42    { 
     43        scoreEffect = new ParticleSystem(perfect, 10, false); 
     44        scoreEffect.MaxAcceleration = 1; 
     45        scoreEffect.MinAcceleration = 1; 
     46        scoreEffect.MaxVelocity = 0; 
     47        scoreEffect.MinVelocity = 0; 
     48        scoreEffect.MinScale = 0.7; 
     49        scoreEffect.MaxScale = 1.0; 
     50        scoreEffect.MaxRotation = 0; 
     51        scoreEffect.MinRotation = 0; 
     52        scoreEffect.MaxRotationSpeed = 0; 
     53        scoreEffect.MinRotationSpeed = 0; 
     54        scoreEffect.MaxLifetime = 2; 
     55        scoreEffect.MinLifetime = 1;         
     56        Add(scoreEffect); 
     57    } 
     58 
     59    void StartGame() 
     60    { 
     61        ClearAll(); 
     62        towerHeight = new Label(); 
     63        towerHeight.TextColor = Color.Black; 
     64        towerHeight.SizeMode = TextSizeMode.AutoSize; 
     65        towerHeight.DecimalPlaces = 2; 
     66        towerHeight.X = Camera.X + 300; 
     67        Add(towerHeight); 
    3868        tower = new Stack<PhysicsObject>(); 
    3969        Level.Width = 3000; 
     70        Gravity = new Vector(0, -400); 
     71        CreateDropArrow(); 
     72        Keyboard.Listen(Key.Space, ButtonState.Released, CreateBlock, ""); 
     73        NewGame(); 
     74    } 
     75 
     76    void NewGame() 
     77    { 
     78        while (tower.Count > 0) 
     79        { 
     80            tower.Pop().Destroy(); 
     81        } 
    4082        ground = Level.CreateGround(Level.Bottom, 40, 20, Color.Green, 20); 
    4183        //tower.Push(ground); 
    42         Gravity = new Vector(0, -400); 
    4384        drop = true; 
    4485        cameraMoving = false; 
    4586        startZoom = Camera.Y - ground.Y; 
    4687        Camera.Zoom(0.8); 
    47         CreateDropArrow(); 
     88        dropArrow.Position = new Vector(Camera.X, Camera.Y + 380); 
    4889    } 
    4990 
     
    5394        dropArrow.Image = dropArrowImage; 
    5495        dropArrow.IgnoresGravity = true; 
    55         dropArrow.Position = new Vector(Camera.X, Camera.Y + 380); 
    5696        Add(dropArrow); 
    57  
    58         UpdateDropArrowBrain(); 
    59     } 
    60  
    61     void UpdateDropArrowBrain() 
    62     { 
    63         dropArrow.Y = Camera.Y + 350; 
    64         dropArrowBrain = new WandererBrain(); 
    65         Vector point1 = new Vector(Camera.X - 150, Camera.Y + 380); 
    66         Vector point2 = new Vector(Camera.X + 150, Camera.Y + 380); 
    67         dropArrowBrain.Add(point1, point2); 
    68         dropArrowBrain.Active = true; 
    69         dropArrowBrain.MovingSpeed = 100; 
    70         //dropArrow.Brain = dropArrowBrain; 
    7197    } 
    7298 
     
    84110            //block.CanRotate = false; 
    85111            block.LinearDamping = 1.0; 
    86             block.Restitution = 0.2; 
     112            block.Restitution = 0.1; 
    87113            block.Tag = "block"; 
    88114            Add(block); 
     
    110136        if (collider.Tag.ToString() == "block" && target == ground) 
    111137        { 
    112             MessageBox loppu = new MessageBox("HÄVISIT PELIN!", "HÄVISIT"); 
    113             Add(loppu); 
     138            GameOver(); 
    114139        } 
    115140        if (collider == newestBlock && target == tower.Peek()) 
    116141        { 
     142            if (tower.Peek().X - 5 < collider.X && collider.X < tower.Peek().X + 5) 
     143            { 
     144                collider.X = tower.Peek().X; 
     145                //tower.Peek().Angle = collider.Angle; 
     146                tower.Peek().Stop(); 
     147                collider.Stop(); 
     148                scoreEffect.AddEffect(Camera.X, Camera.Y, 1); 
     149            } 
    117150            tower.Peek().Color = Color.White; 
    118151            tower.Push(collider); 
     
    124157    } 
    125158 
     159    void GameOver() 
     160    { 
     161        int roundedHeight = (int)Math.Round(towerH, 0); 
     162        highestTowers.Show(roundedHeight); 
     163        KysyUusipeli(); 
     164    } 
     165 
     166    void KysyUusipeli() 
     167    { 
     168        PushButton aloitaUusipeli = new PushButton(50, 20, "Uusi peli"); 
     169        PushButton lopetaPeli = new PushButton(50, 20, "Lopeta peli"); 
     170        aloitaUusipeli.Clicked +=new Action(NewGame); 
     171        lopetaPeli.Clicked += new Action(QuitGame); 
     172    } 
     173 
     174    void QuitGame() 
     175    { 
     176        Exit(); 
     177    } 
     178 
    126179    protected override void Update(Time time) 
    127180    { 
     181        if (tower.Count > 0) 
     182        { 
     183            if (towerH < Math.Round(tower.Peek().Y - ground.Y, 2)) 
     184                towerH = Math.Round(tower.Peek().Y - ground.Y, 2); 
     185            towerHeight.Text = "Tornin korkeus: " + Math.Round(tower.Peek().Y - ground.Y, 2).ToString() 
     186                + " metriä\nTornin suurin korkeus: " + towerH + " metriä"; 
     187        } 
     188        towerHeight.Y = 360; 
    128189        if (tower.Count > 0 && tower.Peek().Y < Camera.Y - 400 && tower.Peek().Tag.ToString() == "block" && Camera.ZoomFactor > (startZoom/(Camera.Y-ground.Y)-0.05)) 
    129190        { 
    130191            Camera.Zoom(0.9); 
    131192        } 
    132         dropArrow.Y = Camera.Y + 350; 
     193        dropArrow.Y = Camera.Y + 380; 
    133194        if (cameraMoving) 
    134195        { 
Note: See TracChangeset for help on using the changeset viewer.