October Update!
Well I haven’t posted for awhile so I thought I’d keep anyone who cares updated. I’m currently halting work on EvoCannon 2 due to me being lazy and that I’m back at college doing my A Levels, some more useless than others…
…But anyway after much frustration I’m finally making head-way with learning a AS3 Physic Engine called APE (Actionscript Physics Engine).
So far I’ve just been getting to grips with the engine by messing around with demos and creating my own. But I was thinking a physics based puzzle platformer or PPP as I like to call it
would be interesting.
So anyway this is what I have so far and is just a short demo:
PPP-Demo
Controls:
Up = Jump
Right = Roll Right
Left = Roll Left
Source:
package { import org.cove.ape.*; import KeyObject; import flash.events.Event; import flash.display.Sprite; public class APETest extends Sprite { public function APETest() { var angVel:Number = 0; var angAcc:Number = 0.1; var keyP:Boolean = false; var keyU:Boolean = true; var key:KeyObject = new KeyObject(stage); APEngine.init(1/4); APEngine.container = this; //Gravity APEngine.addMasslessForce(new Vector(0,2)); var defaultGroup:Group = new Group(); defaultGroup.collideInternal = true; var wp:WheelParticle = new WheelParticle(250, 200, 15, false, 1, 0.1); defaultGroup.addParticle(wp); var cp1:CircleParticle = new CircleParticle(448, 300, 72, true, 100, 0.1); defaultGroup.addParticle(cp1); var cp2:CircleParticle = new CircleParticle(52, 300, 72, true, 100, 0.1); defaultGroup.addParticle(cp2); var rp1:RectangleParticle = new RectangleParticle(250,400,200,20,0,true); defaultGroup.addParticle(rp1); var rp2:RectangleParticle = new RectangleParticle(230,400,200,20,0.2,true); defaultGroup.addParticle(rp2); var rp3:RectangleParticle = new RectangleParticle(270,400,200,20,-0.2,true); defaultGroup.addParticle(rp3); var rp4:RectangleParticle = new RectangleParticle(210,400,200,20,0.5,true); defaultGroup.addParticle(rp4); var rp5:RectangleParticle = new RectangleParticle(290,400,200,20,-0.5,true); defaultGroup.addParticle(rp5); var rp6:RectangleParticle = new RectangleParticle(190,400,200,20,0.8,true); defaultGroup.addParticle(rp6); var rp7:RectangleParticle = new RectangleParticle(310,400,200,20,-0.8,true); defaultGroup.addParticle(rp7); var rp8:RectangleParticle = new RectangleParticle(170,400,200,20,1,true); defaultGroup.addParticle(rp8); var rp9:RectangleParticle = new RectangleParticle(330,400,200,20,-1,true); defaultGroup.addParticle(rp9); var rp10:RectangleParticle = new RectangleParticle(150,400,200,20,1.2,true); defaultGroup.addParticle(rp10); var rp11:RectangleParticle = new RectangleParticle(350,400,200,20,-1.2,true); defaultGroup.addParticle(rp11); var rp12:RectangleParticle = new RectangleParticle(130,400,200,20,1.4,true); defaultGroup.addParticle(rp12); var rp13:RectangleParticle = new RectangleParticle(370,400,200,20,-1.4,true); defaultGroup.addParticle(rp13); var rp14:RectangleParticle = new RectangleParticle(250,280,180,5,0,true); defaultGroup.addParticle(rp14); var rp15:RectangleParticle = new RectangleParticle(0,200,20,400,0,true); defaultGroup.addParticle(rp15); var rp16:RectangleParticle = new RectangleParticle(500,200,20,400,0,true); defaultGroup.addParticle(rp16); var rp17:RectangleParticle = new RectangleParticle(250,0,500,20,0,true); defaultGroup.addParticle(rp17); APEngine.addGroup(defaultGroup); addEventListener(Event.ENTER_FRAME, eachFrame); function eachFrame(e:Event):void { APEngine.step(); APEngine.paint(); moveWheel(); } function moveWheel() { if(key.isDown(key.UP)){ if(!keyU){ wp.addForce(new Vector(0,-40)); keyU = true; } }else{ keyU = false; } if (key.isDown(key.LEFT)) { wp.angularVelocity = -angAcc; keyP = true; } if (key.isDown(key.RIGHT)) { wp.angularVelocity = angAcc; keyP = true; } if (!key.isDown(key.RIGHT) && !key.isDown(key.LEFT)){ keyP = false; } if(!keyP){ wp.angularVelocity = 0; } if(key.isDown(key.SPACE)){ trace(defaultGroup.collisionList); } } } } }
Enjoy and leave a comment with your ideas and thoughts!
I was expecting the arrow game.
Lookie what I did:
[img]http://i38.tinypic.com/69pzd1.png[/img]
Need to wait for this to come through before I can fix that bug.
http://groups.google.com/group/ape-general/browse_thread/thread/473166a125d18465