public StarlingGameSpriteWithCannonControl() { var textures_cannon = new StarlingGameSpriteWithCannonTextures(new_tex_crop); onbeforefirstframe += (stage, s) => { var cannon1 = new PhysicalCannon(textures_cannon, this); #region __keyDown var __keyDown = new KeySample(); stage.keyDown += e => { // http://circlecube.com/2008/08/actionscript-key-listener-tutorial/ if (e.altKey) __keyDown[Keys.Alt] = true; __keyDown[(Keys)e.keyCode] = true; }; stage.keyUp += e => { if (!e.altKey) __keyDown[Keys.Alt] = false; __keyDown[(Keys)e.keyCode] = false; }; #endregion current = cannon1; onsyncframe += delegate { cannon1.SetVelocityFromInput(__keyDown); }; }; }
public StarlingGameSpriteWithCannonControl() { var textures_cannon = new StarlingGameSpriteWithCannonTextures(new_tex_crop); onbeforefirstframe += (stage, s) => { var cannon1 = new PhysicalCannon(textures_cannon, this); #region __keyDown var __keyDown = new KeySample(); stage.keyDown += e => { // http://circlecube.com/2008/08/actionscript-key-listener-tutorial/ if (e.altKey) { __keyDown[Keys.Alt] = true; } __keyDown[(Keys)e.keyCode] = true; }; stage.keyUp += e => { if (!e.altKey) { __keyDown[Keys.Alt] = false; } __keyDown[(Keys)e.keyCode] = false; }; #endregion current = cannon1; onsyncframe += delegate { cannon1.SetVelocityFromInput(__keyDown); }; }; }
public StarlingGameSpriteWithTestGamePad() { var textures_ped = new StarlingGameSpriteWithPedTextures(new_tex_crop, this.new_texsprite_crop); var textures_tank = new StarlingGameSpriteWithTankTextures(this.new_texsprite_crop); var textures_hind = new StarlingGameSpriteWithHindTextures(this.new_tex_crop); var textures_jeep = new StarlingGameSpriteWithJeepTextures(new_tex_crop); var textures_cannon = new StarlingGameSpriteWithCannonTextures(new_tex_crop); var textures_bunker = new StarlingGameSpriteWithBunkerTextures(new_tex_crop); disablephysicsdiagnostics = true; disable_movezoom_and_altitude_for_scale = true; internalscale = 1.7; internal_center_y = 0.5; this.onbeforefirstframe += (stage, s) => { #region __keyDown stage.keyDown += e => { // http://circlecube.com/2008/08/actionscript-key-listener-tutorial/ if (e.altKey) __keyDown[Keys.Alt] = true; __keyDown[(Keys)e.keyCode] = true; }; stage.keyUp += e => { if (!e.altKey) __keyDown[Keys.Alt] = false; __keyDown[(Keys)e.keyCode] = false; }; #endregion var tank1 = new PhysicalTank(textures_tank, this); tank1.SetPositionAndAngle(random.NextDouble() * 4000, 100); // half speed! //tank1.AngularVelocityMultiplier = 0.5; //tank1.speed = 10; //tank1.SetPositionAndAngle(100, 100); var cannon1 = new PhysicalCannon(textures_cannon, this); cannon1.SetPositionAndAngle(random.NextDouble() * 4000, 100); var physical0 = new PhysicalPed(textures_ped, this); physical0.SetPositionAndAngle(random.NextDouble() * 4000, 100); current = physical0; var hind0 = new PhysicalHind(textures_hind, this); hind0.SetPositionAndAngle(random.NextDouble() * 4000, 100); var jeep = new PhysicalJeep(textures_jeep, this); jeep.SetPositionAndAngle(random.NextDouble() * 4000, 100); var bunker0 = new PhysicalBunker(textures_bunker, this); bunker0.SetPositionAndAngle(random.NextDouble() * 4000, 100); var silo0 = new PhysicalSilo(textures_bunker, this); __switchto += type => { if (type == "ped") current = physical0; if (type == "tank") current = tank1; if (type == "hind") current = hind0; if (type == "jeep") current = jeep; if (type == "cannon") current = cannon1; if (type == "bunker") current = bunker0; if (type == "silo") current = silo0; }; onsyncframe += delegate { current.SetVelocityFromInput(__keyDown); while (Content_layer0_tracks.numChildren > 5) { Content_layer0_tracks.removeChildAt(0); } }; }; }
public StarlingGameSpriteWithTestDrivers() { var textures_ped = new StarlingGameSpriteWithPedTextures(this.new_tex_crop, this.new_texsprite_crop); // ?? //<Reference Include="FlashHeatZeeker.UnitHindControl"> // <HintPath>..\packages\FlashHeatZeeker.UnitHindControl.1.0.0.0\lib\FlashHeatZeeker.UnitHindControl.dll</HintPath> //</Reference> // "X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\packages\FlashHeatZeeker.UnitHindControl.1.0.0.0\lib\FlashHeatZeeker.UnitHindControl.dll" // "X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\packages\FlashHeatZeeker.UnitHind.1.0.0.0\lib\FlashHeatZeeker.UnitHind.dll" var textures_hind = new StarlingGameSpriteWithHindTextures(this.new_tex_crop); var textures_jeep = new StarlingGameSpriteWithJeepTextures(this.new_tex_crop); var textures_tank = new StarlingGameSpriteWithTankTextures(this.new_texsprite_crop); var textures_cannon = new StarlingGameSpriteWithCannonTextures(this.new_tex_crop); var textures_bunker = new StarlingGameSpriteWithBunkerTextures(this.new_tex_crop); var textures_map = new StarlingGameSpriteWithMapTextures(new_tex_crop); var textures_rocket = new StarlingGameSpriteWithRocketTextures(this.new_tex_crop); this.disablephysicsdiagnostics = true; // ???? this.onbeforefirstframe += (stage, s) => { var hud = new Image(textures_ped.hud_look()).AttachTo(this); for (int i = 0; i < 32; i++) { new Image(textures_map.hill1()).AttachTo(Content).With( hill => { hill.x = 2048.Random(); hill.y = 2048.Random(); } ); new Image(textures_map.hole1()).AttachTo(Content).With( hill => { hill.x = 2048.Random(); hill.y = 2048.Random(); } ); new Image(textures_map.grass1()).AttachTo(Content).With( hill => { hill.x = 2048.Random(); var y = -2048.Random() - 512 - 256; hill.y = y; } ); } for (int i = 0; i < 128; i++) { var x = 2048.Random(); var y = -2048.Random() - 512 - 256; new Image(textures_map.tree0_shadow()).AttachTo(Content).MoveTo(x + 16, y + 16); new Image(textures_map.tree0()).AttachTo(Content).MoveTo(x, y); } for (int i = -12; i < 12; i++) { new Image(textures_map.road0()).AttachTo(Content).x = 256 * i; } new Image(textures_map.touchdown()).AttachTo(Content).MoveTo(256, -256); new Image(textures_map.touchdown()).AttachTo(Content).y = 256; new PhysicalHindWeaponized(textures_hind, textures_rocket, this) { AutomaticTakeoff = true }.SetPositionAndAngle((128 + 256) / 16, -128 * 1.5 / 16); new PhysicalTank(textures_tank, this).SetPositionAndAngle(128 / 16, 128 * 3 / 16); new Image(textures_map.tree0_shadow()).AttachTo(Content).y = 128 + 16; new Image(textures_map.tree0()).AttachTo(Content).y = 128; // can I have // new ped, hind, jeep, tank current = new PhysicalPed(textures_ped, this); // 12 = 34FPS #region other units for (int i = 3; i < 9; i++) { var cannon2 = new PhysicalCannon(textures_cannon, this); cannon2.SetPositionAndAngle( i * 16, -32, random.NextDouble() ); if (i % 3 == 0) { new PhysicalBunker(textures_bunker, this).SetPositionAndAngle( i * 16, -16, random.NextDouble() ); } else if (i % 3 == 1) { new PhysicalWatertower(textures_bunker, this).SetPositionAndAngle( i * 16, -16, random.NextDouble() ); } else { new PhysicalSilo(textures_bunker, this).SetPositionAndAngle( i * 16, -16, random.NextDouble() ); } var hind2 = new PhysicalHindWeaponized(textures_hind, textures_rocket, this) { AutomaticTakeoff = true }; hind2.SetPositionAndAngle( i * 16, 8, random.NextDouble() ); var jeep2 = new PhysicalJeep(textures_jeep, this); jeep2.SetPositionAndAngle( i * 16, 16, random.NextDouble() ); var tank2 = new PhysicalTank(textures_tank, this); tank2.SetPositionAndAngle( i * 16, 24, random.NextDouble() ); var ped2 = new PhysicalPed(textures_ped, this); ped2.SetPositionAndAngle( i * 16, 32, random.NextDouble() ); } #endregion #region __keyDown stage.keyDown += e => { // http://circlecube.com/2008/08/actionscript-key-listener-tutorial/ if (e.altKey) __keyDown[System.Windows.Forms.Keys.Alt] = true; __keyDown[(System.Windows.Forms.Keys)e.keyCode] = true; }; stage.keyUp += e => { if (!e.altKey) __keyDown[System.Windows.Forms.Keys.Alt] = false; __keyDown[(System.Windows.Forms.Keys)e.keyCode] = false; }; #endregion bool entermode_changepending = false; bool mode_changepending = false; onframe += delegate { #region hud { var cm = new Matrix(); cm.scale(0.5, 0.5); cm.translate(16, stage.stageHeight - 64 - 24); hud.transformationMatrix = cm; } #endregion }; onsyncframe += delegate { #region entermode_changepending if (!__keyDown[System.Windows.Forms.Keys.Enter]) { // space is not down. entermode_changepending = true; } else { if (entermode_changepending) { entermode_changepending = false; // enter another vehicle? var candidatedriver = current as PhysicalPed; if (candidatedriver != null) { var target = from candidatevehicle in units where candidatevehicle.driverseat != null // can enter if the seat is full. // unless we kick them out before ofcourse where candidatevehicle.driverseat.driver == null let distance = new __vec2( (float)(candidatedriver.body.GetPosition().x - candidatevehicle.body.GetPosition().x), (float)(candidatedriver.body.GetPosition().y - candidatevehicle.body.GetPosition().y) ).GetLength() where distance < 6 orderby distance ascending select new { candidatevehicle, distance }; target.FirstOrDefault().With( x => { Console.WriteLine(new { x.distance }); //current.loc.visible = false; current.body.SetActive(false); x.candidatevehicle.driverseat.driver = candidatedriver; candidatedriver.seatedvehicle = x.candidatevehicle; current = x.candidatevehicle; if (current.body.GetType() == Box2D.Dynamics.b2Body.b2_dynamicBody) { hud.texture = textures_ped.hud_look_goggles(); } else { hud.texture = textures_ped.hud_look_building(); } //switchto(x.x); } ); } else { (current.driverseat.driver as PhysicalPed).With( driver => { current.driverseat.driver = null; driver.seatedvehicle = null; current.SetVelocityFromInput(new KeySample()); // crashland? (current as PhysicalHind).With( hind => hind.VerticalVelocity = -1 ); current = driver; current.body.SetActive(true); hud.texture = textures_ped.hud_look(); } ); } } } #endregion #region mode if (!__keyDown[System.Windows.Forms.Keys.Space]) { // space is not down. mode_changepending = true; } else { if (mode_changepending) { (current as PhysicalHind).With( hind1 => { if (hind1.visual.Altitude == 0) hind1.VerticalVelocity = 1.0; else hind1.VerticalVelocity = -0.4; } ); (current as PhysicalPed).With( physical0 => { if (physical0.visual.LayOnTheGround) physical0.visual.LayOnTheGround = false; else physical0.visual.LayOnTheGround = true; } ); mode_changepending = false; } } #endregion current.SetVelocityFromInput(__keyDown); #region simulate a weapone! if (__keyDown[System.Windows.Forms.Keys.ControlKey]) if (syncframeid % 3 == 0) { (this.current as PhysicalHindWeaponized).With( h => { //sb.snd_missleLaunch.play(); h.FireRocket(); } ); } #endregion }; }; }