ActionScript 3.0 :: Box2D How To Display Graphics
May 17, 2011I have one question for your.This code I took from the site
ActionScript Code:
package {
import flash.display.Sprite;
[code]......
I have one question for your.This code I took from the site
ActionScript Code:
package {
import flash.display.Sprite;
[code]......
i am trying to receive in my function as a parameter either a shape or a sprite and then access their graphics property, but this gives me an error:
Code:
public static function makeRect( obj:DisplayObject, ...
var g:Graphics;
if(obj is Sprite){
[code]...
//1119: Access of possibly undefined property graphics through a reference with static type flash.display:Graphics.
Anyone know how to achieve a 1:1 display of box2d data?I'm dividing all my values by a Physics.Scale value (30) but boxes I create like this:polyDef.SetAsBox(640 /Physics. scale, 32 / Physics.scale);Are still showing up much larger than 640 pixels wide and 32 pixels high.Weirdly, my AABB for the world is showing up perfectly at 640x480.[code]
View 1 RepliesI have two layers in Photoshop: 1 -- a texture, 2 -- a semi-transparent image that overlaps texture. The combination of the two looks nice in Photoshop. I export them separately from Photoshop saving them as 24 bit PNG with transparency and colors converted to sRGB. (Working color space of PS is sRGB.) The result of importing them into flash makes me cry (see images below, note what areas around crosses look like).
I tried both loading PNGs dynamically and directly importing them into fla (compression type: lossles, allow smoothing: false). Looks like semi-transparent areas are saved inaccurately on export. What's more puzzling to me is why the results differ between dynamic loading and direct importing. Here is that psd I'm stuck upon. Inside the zip you'll find transparency.psd, which has only two layers. I still have no luck in placing them into fla: transparent areas get dirty. [URL]
The documentation for the List component at[URL].. states "A list can also display graphics, including other components," but nowhere can I find an example of HOW to make this happen. Can anyone please point me to a working example, I really need to be able to leverage this functionality, but I cannot for the life of me find anywhere it's being done.
View 4 RepliesRegarding the code below, when Document class is "Main" [the intended default condition] I do not get the graphics declared in class Thing (ie., in object myThing:Thing) put on stage. Why??? Whereas when I define Document class as Thing, then yes theses graphics do appear on stage. So the syntax itself is OK
[Code]...
I have created an animation where a motion tween takes a graphic out of the stage, but this is replicated in my projector. s
View 4 RepliesI am using a third party flash as3 code to load graphics using sprite. There is a class (load) that takes care of the loading of the graphics.In a new class(getname), I want to be able to1. Load the graphics (done)2. On mouseover change the color of graphics(done)3. Display name of rolled over graphic (not working). I have tried the following in
getname:var feature : load;feature.name;
I get a null object error. Now I have used the mousevent routine(e.target.name) and can display the instance #(instance149). But what I really want is the name of the graphics that the load function loads (graphics and the dbf with all the attributes including the name).
Is there any way to erase a part of flash.display.Graphics canvas? Like
[cODE]....
This produces just a red square (the last 3 calls are noop), and what i need is a transparent square hole in it.
I was wondering about MC and hey can help to lag a game out. I set up an advanced class system so i don't have to use MC to simulate walls, all i use isthe x,y,width and height. Well anyway since i don't need MC anymore I was wondering if there is a way to attach Graphics instead of MC cause a Graphics file size is relatively small than that of a graphic, I think. If anyone could tell me thats true and show me a way to attach graphics that would be nice. I haven't tried it yet but maybe if I exported the graphic from the library imihgt be able to call its name, but it doesn't have an instance name so im stuck.
View 2 Replieshow to use Box2d?
View 4 RepliesI recently did a quick demo on my site of Box2D (Box2DFlashAS3) with source code. Its basically just the HelloWorld example from the v2.1a distribution, but with a few tweaks. The most notable is that my version does not require a Flash FLA file to compile and run, its pure AS3. Simple and a good base to build on:
http:[url]........
Anyone know how to get BOX2D physics engine working on iOS? It seems to work on the adl tester but not when I actually test it on the device.
View 1 RepliesI'm making a game like Arkanoid and to move the ship with mouse, I'm using the following code :
var mousex:int = costume.stage.mouseX;
if (mousex < paddleWidth/2)
mousex = paddleWidth/2;
else if (mousex > PhysiVals.STAGE_WIDTH - paddleWidth/2)
[code]....
Everything's going fine there! The paddle is moving the way it should! The problem is I want a little inclination towards the direction its moving and when it stops moving the angle of inclination should become zero.
Here: Flash game
There is a flash game called garbage separator. In this game, there is a conveyor belt.
With 2 Circles you can move the conveyor and I think you can use boxes with joint for belt but i dont know how to give it the form:
Circular Form
How to do this with Box2d?
I'm using sensors in a Box2D project. On a collision with a sensor, I'd like to know the sensor's position in the world. I'm detecting the collision with a contact listener, but the sensor's position is always 0 0.
From my code: (edit, added the whole class)
public class MyContactListener extends b2ContactListener {
public var onSensorEvent:Function;
override public function BeginContact(contact:b2Contact):void {
if(contact.GetFixtureA().IsSensor()) {
var ud1:GameEntity = contact.GetFixtureA().GetBody().GetUserData();
[Code] .....
I need to click over an object in Box2D. Need to know which object i have clicked, and to delete that object. How could i know, which object i have clicked?..
View 1 RepliesI'm working on a AS3 Game Engine at the moment utilizing Box2D (2.1a) and 2D shadows. I have Box2D down but I've yet to find a way of drawing 2D shadows efficiently.I was following this tutorial only to be disappointed by the speed at which it rendered the Box2D shapes and the shadows.I was getting the vertices of the objects via this function:[code]And using it to draw the shadows via the AS3 graphics api.Can anyone recommend me a better more efficient way of programming 2D shadows?
View 2 RepliesI am trying to detect bodies which are near current. To do it, I've created quite a big collision shape, around the current body, and made it sensor. Collision event was triggered, but it's not what I need. Main thing is that collision event is called only first time when another body entered the detection field... And I want to be able to detect changes in bodies location, after it. (I am considering the fact that other bodies are moving inside detection field)
View 1 RepliesI have a b2PolygonShape body and apply a force to it.
_recbody->ApplyForce( b2Vec2(6.0, -6.0), _recbody->GetWorldCenter() );
I want to change the centre of rotation of the body to be more in the front of the body. So that applyForce and also collisions make the body not turn in the centre but more in the front.
I'm making a Flash game, and I've encountered a really weird problem while trying to draw a polygonal shape in Box2D.
Here's the code I use:
var fixtureDefs:Array = new Array();
...
var fDef:b2FixtureDef = new b2FixtureDef();
fDef.density = 0;
[code]....
Where vertexArray is a valid array containing 4 b2Vec2 vertices, making up a convex shape.The problem is, when I test, collisions don't work right for that body. Most other objects -enemies, user-controlled characters - pass straight through, as if the body isn't there at all. Some raycasts pass through as well.
Infuriatingly enough, one kind of bodies I have (a custom enemy) somehow does detect the body and collides with it. The raycasts that particular kind of enemy attempts do work - when your character hides behind the polygon, it's like they can't see him.The other weird thing: when I try the same code, only go for SetAsBox instead of SetAsArray, it works exactly as it should.I'm using a custom ContactListener class, but I haven't done any contact filtering (unless it's possible to do that without realising).I'm using the Flash 9 version of Box2D 2.1a.
i'm using flash with box2D 2.1a. i'm rotating ball hanging on the string. The path which the rotating ball trace is ellipse. When releasing the rotating ball from the string i want the ball to fly with the obtained direction, velocity and strength. As you can see in the pictures.[URL]..I've tried to do it with setPosition (method of b2Body) and with various joints. But I haven't got the needed results.
View 2 RepliesI know that trying to model character movement in Box2D is always hard/impossible, but I'm trying to see if there's any way to make an user-controlled object that cleanly slides against other objects, going up or down, that makes it look like the character is climbing/walking up or a down. The character could be modelled as a circle if that simplifies matters, but I don't see how I could get this effect using just a circle with a joint motor.
There's a "wheel joint" in the C++ version of Box2d, which I suppose I could port to Flash, but I don't know if that would give the correct effect either. Another idea I had was to have the character do little jumps, based on the normal of the object that it is touching. But I suspect that at corners, or at contacts with multiple objects, this will give weird results.
Is it possible to modify a shape within a body after assigning it, for example I have a box shape for my game hero body, and when I press the down arrow I want my hero to crouch witch means that I need the body shape to be resized.
I've already searched in google but it appears that the topic of modyfing shapes is not so popular. If it's impossible maybe you know a better way of doing this.
I still have problem understanding how the collision category works. I'm only able to make it work by experimenting which is not good.
[Code]...
this works the way I wanted but only because I experimented around and found the right values (or at least values that work). I would prefer to know how the whole system works
I have made a Car Game using Box2D [in Flash] and I have one remaining bug, which I cannot fix. I added graphics and put them on top of the Box2D body. Everything went as good as expected, but after X rotations the movie clips for the car-wheels, stop spinning. I do something like this wheelSprite.rotation = wheelBody.GetAngle() * 180 / Math.PI. I ran a separate program and I saw that, if you do X.rotation += variable and you increase the variable every frame, after ~30 000 (value of variable) the MovieClip stops rotating, so I reset it to 0 after ~28 000. What do I do? The wheelBody.GetAngle()
View 2 RepliesI want to know if box2d b2BodyDef has a massdata property or if it can be accessed in some way. I am not sure whether this can be done in Cocos2D but I have seen it in the flash code I am trying to re-implement in cocos2d.Here is the the code that brought about the question.
[Code]...
I am extending the b2ContactListener to find out the normals of my collisions. However, every time I get a contact with a sensor, the normal is always 0,0. How do I get the normal if one of the bodies is a sensor?
override public virtual function BeginContact( contact : b2Contact ) : void
{
var normal : b2Vec =
[Code]...
I'm trying to create spinning shapes floating in space. There is still gravity in the environment, however it should not affect these platform objects because they are static (right?). How can I apply a constant angularVelocity to it though? It doesn't seem to apply when I assign it a value, probably due because it's static.
The simplest example would be a spinning gear, an automated teeter-totter (not influenced by external forces). All I'm trying to make is a spinning rectangle that could interfere with a ball controlled by the user.Do I need to use Joints to pin it in place? How can I specify the details of not being influenced by the dynamic objects?
i am listening contact between dynamic bodies. But cannot listen contact between dynamic and static bodies .
I can handle collision detection on my b2contactListener class with this metod.
public override function BeginContact(contact:b2Contact):void {
// getting the fixtures that collided
var fixtureA:b2Fixture=contact.GetFixtureA();
[Code].....