Changeset 1139
- Timestamp:
- 2010-07-07 14:39:10 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/27/sijoseha/BuildingBuilder/Peli.cs
r1118 r1139 1 1 using System; 2 using System.Collections.Generic; 2 3 using Jypeli; 3 4 using Jypeli.Widgets; … … 6 7 public class Peli : PhysicsGame 7 8 { 8 //PhysicsObject block; 9 PhysicsObject ground; 10 PhysicsObject newestBlock; 11 12 PhysicsObject dropArrow; 9 PhysicsObject newestBlock, hittedBlock, dropArrow, ground; 10 //Queue<PhysicsObject> tower; 11 Stack<PhysicsObject> tower; 12 enum DropArrowDirection 13 { 14 Left, 15 Right 16 } 17 DropArrowDirection dAD; 13 18 Image dropArrowImage; 14 Boolean drop ;19 Boolean drop, cameraMoving; 15 20 WandererBrain dropArrowBrain; 21 double startZoom; 16 22 17 23 protected override void Begin() … … 30 36 void CreateLevel() 31 37 { 32 ground = Level.CreateGround(Level.Bottom, 20, 10, Color.Green, 10); 33 Camera.ZoomToLevel(); 38 tower = new Stack<PhysicsObject>(); 39 Level.Width = 3000; 40 ground = Level.CreateGround(Level.Bottom, 40, 20, Color.Green, 20); 41 //tower.Push(ground); 34 42 Gravity = new Vector(0, -400); 35 43 drop = true; 36 44 cameraMoving = false; 45 startZoom = Camera.Y - ground.Y; 46 Camera.Zoom(0.8); 37 47 CreateDropArrow(); 38 48 } … … 42 52 dropArrow = new PhysicsObject(48, 48); 43 53 dropArrow.Image = dropArrowImage; 44 dropArrow.Position = new Vector(Camera.X, Camera.Y + 350); 54 dropArrow.IgnoresGravity = true; 55 dropArrow.Position = new Vector(Camera.X, Camera.Y + 380); 45 56 Add(dropArrow); 46 57 … … 52 63 dropArrow.Y = Camera.Y + 350; 53 64 dropArrowBrain = new WandererBrain(); 54 Vector point1 = new Vector(Camera.X - 150, Camera.Y + 3 50);55 Vector point2 = new Vector(Camera.X + 150, Camera.Y + 3 50);65 Vector point1 = new Vector(Camera.X - 150, Camera.Y + 380); 66 Vector point2 = new Vector(Camera.X + 150, Camera.Y + 380); 56 67 dropArrowBrain.Add(point1, point2); 57 68 dropArrowBrain.Active = true; 58 69 dropArrowBrain.MovingSpeed = 100; 59 dropArrow.Brain = dropArrowBrain;70 //dropArrow.Brain = dropArrowBrain; 60 71 } 61 72 … … 68 79 block.Position = new Vector(dropArrow.X, Camera.Y + 200); 69 80 block.KineticFriction = 1.0; 81 block.Color = Color.Red; 70 82 block.AngularVelocity = 0; 83 block.AngularDamping = 0.3; 71 84 //block.CanRotate = false; 72 85 block.LinearDamping = 1.0; … … 87 100 if (collider.Y > Camera.Y) 88 101 { 89 Camera.Y += 100; 90 UpdateDropArrowBrain(); 102 //cameraMoving = true; 103 //UpdateDropArrowBrain(); 104 } 105 if (collider == newestBlock && target == ground && tower.Count == 0) 106 { 107 tower.Push(collider); 108 tower.Peek().Tag = "base"; 109 } 110 if (collider.Tag.ToString() == "block" && target == ground) 111 { 112 MessageBox loppu = new MessageBox("HÄVISIT PELIN!", "HÄVISIT"); 113 Add(loppu); 114 } 115 if (collider == newestBlock && target == tower.Peek()) 116 { 117 tower.Peek().Color = Color.White; 118 tower.Push(collider); 119 //hittedBlock = collider; 120 //hittedBlock.Color = Color.Green; 121 tower.Peek().Color = Color.Green; 122 cameraMoving = true; 91 123 } 92 124 } 125 126 protected override void Update(Time time) 127 { 128 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 { 130 Camera.Zoom(0.9); 131 } 132 dropArrow.Y = Camera.Y + 350; 133 if (cameraMoving) 134 { 135 Camera.Y += 2; 136 if (tower.Peek().Y < Camera.Y) 137 { 138 cameraMoving = false; 139 } 140 } 141 if (tower.Count > 0 && Camera.Y < tower.Peek().Y) 142 { 143 cameraMoving = true; 144 } 145 146 if (dAD == DropArrowDirection.Left) 147 { 148 dropArrow.X -= 5; 149 if (dropArrow.X <= -150) 150 dAD = DropArrowDirection.Right; 151 } 152 else if (dAD == DropArrowDirection.Right) 153 { 154 dropArrow.X += 5; 155 if (dropArrow.X >= 150) 156 dAD = DropArrowDirection.Left; 157 } 158 base.Update(time); 159 } 93 160 }
Note: See TracChangeset
for help on using the changeset viewer.