- Timestamp:
- 2010-07-08 13:57:38 (13 years ago)
- Location:
- 2010/27/sijoseha/BuildingBuilder
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/27/sijoseha/BuildingBuilder/BuildingBuilder.csproj
r1145 r1183 57 57 </PropertyGroup> 58 58 <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"> 60 60 <SpecificVersion>False</SpecificVersion> 61 61 <HintPath>..\..\lib\Jypeli2.dll</HintPath> -
2010/27/sijoseha/BuildingBuilder/Content/Content.contentproj
r1118 r1183 41 41 </Compile> 42 42 </ItemGroup> 43 <ItemGroup> 44 <Compile Include="perfectText.png"> 45 <Name>perfectText</Name> 46 <Importer>TextureImporter</Importer> 47 <Processor>TextureProcessor</Processor> 48 </Compile> 49 </ItemGroup> 43 50 </Project> -
2010/27/sijoseha/BuildingBuilder/Peli.cs
r1139 r1183 4 4 using Jypeli.Widgets; 5 5 using Jypeli.Assets; 6 using Jypeli.Effects; 6 7 7 8 public class Peli : PhysicsGame 8 9 { 9 PhysicsObject newestBlock, hittedBlock, dropArrow, ground; 10 //Queue<PhysicsObject> tower; 10 PhysicsObject newestBlock, dropArrow, ground; 11 11 Stack<PhysicsObject> tower; 12 12 enum DropArrowDirection … … 16 16 } 17 17 DropArrowDirection dAD; 18 Image dropArrowImage ;18 Image dropArrowImage, perfect; 19 19 Boolean drop, cameraMoving; 20 20 WandererBrain dropArrowBrain; 21 double startZoom; 21 double startZoom, towerH; 22 Label towerHeight; 23 ParticleSystem scoreEffect; 24 HighScoreList highestTowers; 22 25 23 26 protected override void Begin() 24 27 { 25 28 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(); 31 33 } 32 34 void LoadContent() 33 35 { 34 36 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); 38 68 tower = new Stack<PhysicsObject>(); 39 69 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 } 40 82 ground = Level.CreateGround(Level.Bottom, 40, 20, Color.Green, 20); 41 83 //tower.Push(ground); 42 Gravity = new Vector(0, -400);43 84 drop = true; 44 85 cameraMoving = false; 45 86 startZoom = Camera.Y - ground.Y; 46 87 Camera.Zoom(0.8); 47 CreateDropArrow();88 dropArrow.Position = new Vector(Camera.X, Camera.Y + 380); 48 89 } 49 90 … … 53 94 dropArrow.Image = dropArrowImage; 54 95 dropArrow.IgnoresGravity = true; 55 dropArrow.Position = new Vector(Camera.X, Camera.Y + 380);56 96 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;71 97 } 72 98 … … 84 110 //block.CanRotate = false; 85 111 block.LinearDamping = 1.0; 86 block.Restitution = 0. 2;112 block.Restitution = 0.1; 87 113 block.Tag = "block"; 88 114 Add(block); … … 110 136 if (collider.Tag.ToString() == "block" && target == ground) 111 137 { 112 MessageBox loppu = new MessageBox("HÄVISIT PELIN!", "HÄVISIT"); 113 Add(loppu); 138 GameOver(); 114 139 } 115 140 if (collider == newestBlock && target == tower.Peek()) 116 141 { 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 } 117 150 tower.Peek().Color = Color.White; 118 151 tower.Push(collider); … … 124 157 } 125 158 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 126 179 protected override void Update(Time time) 127 180 { 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; 128 189 if (tower.Count > 0 && tower.Peek().Y < Camera.Y - 400 && tower.Peek().Tag.ToString() == "block" && Camera.ZoomFactor > (startZoom/(Camera.Y-ground.Y)-0.05)) 129 190 { 130 191 Camera.Zoom(0.9); 131 192 } 132 dropArrow.Y = Camera.Y + 3 50;193 dropArrow.Y = Camera.Y + 380; 133 194 if (cameraMoving) 134 195 {
Note: See TracChangeset
for help on using the changeset viewer.