ActionScript 3.0 :: Flash Classes, Collisions And Functions - Check If A Ball Is Hitting Another?
Oct 11, 2010
Im working in FlashDevelop on a 'breakout' game where you control a paddle with your mouse and a ball bounces around the screen and breaks blocks.Right now I have a Main, Paddle, and Ball class. In the main class I added a Paddle called player as a public static variable. In my Ball class I have a collisionCheck() function. This way I can access 'player' from within my Ball class for testing collisions.
At somepoint in the game there will be a powerup that adds mutiple balls to the stage. Right now I have a function in the main class call addBall() to add a new Ball to the stage.I am now running into trouble. Working on the collision check method in my Ball class, I dont know how to check if a ball is hitting another ball because as of right now, balls are being added with the addBall function, so they can't be declared as public static variables.
I am making a breakout type game where you bounce a ball around and it hits & breaks blocks.The issue im having is with handling the ball after a collision is detected.Every frame the ball checks four points on its surface to see if they are colliding with any of the blocks. The problem occurs when the ball starts moving fast. The ball's radius is 7 pixels. If it is moving upwards at higher than7 px/ frame, then the ball might end up half way into one of the blocks.
In that case the ball detects a collision on its top AND on its side (which is bad -- If the ball is travelling upwards it should detect the collision at the top of the ball)how I could fix this so that I can make the ball move fast without sacrificing the accurate detection of collisions??
I am trying to apply code to all instances of the enemy that appear randomly but I've run into problems. Firstly the enemies appear when you press space and the collision doesn't seem to work. I kind of thought you have to push the enemies into an array and hitTest that array right?
Actionscript Code: stop(); var ship_speed:Number = 10;var lazer_speed:Number = 20; var enemy_speed:Number = 8;var lazertimer:Number = 0; var basicenemy:Number = 0;var enemytime:Number = 0; var enID:Number = 0; var enemies:Array =[]onEnterFrame = function() { [Code] .....
I know you use the HitTest function to check for collisions, but how would I do that the moment a movie clip is dynamically created. So the moment the clip is created it would check if it is overlapping another clip. Also, does it matter if the clips are at different depths?
I have been reading these forums for like 2 months, thus i never felt like being able to post something as a valuable answer to someone's problem, since i've been AS3ing for like 3 months now. I have a small problem here on a game that i am trying to create. I am trying to make a shooter game . Like the ones u kill enemies and then the the level advances ( imagine the pseydomovement depth feel of the background giving the player the taste of further movement of the field , yes like old airplane games ). Ok to the point.
1) created a main .as where all the code is running. The movement of the player is written there also. no problem with that. 2) created a bullet class where i assign the bullet speed and i check for the collisions with enemies. the problem occurs somewhere here i have created a statement where every some time ( like 0,5 secs ) an enemy appears and takes a random road till the stageHeight . here is the code .
[Code]...
So when all 5 mikros are out i start firing them . BUT only the last child of mikros seems to follow the hittestobject procedure of my code. Which means that if all of the 5 mikros are on stage the one with the smallest .y value will disappear when hit by "sfera". I know it is huge but this pains my head for like 1 week and i cannot think anything . Tried some staff. but i do not know if this is proper thinking or if my programming is proper for this and i must redo all.
I'm working on a game (my first) where objects touching is A-Ok, but I want to detect overlapping collisions ahead of time, prevent them, and react. This seems like a pretty basic and common thing, such as a character walking along a platform (even though by touching it it's 'colliding'), but of all the many many collision detection tutorials I've looked at, none of them have covered this case--they all assume that objects touching should be indistinguishable from overlapping. I've been using a workaround of a slightly smaller hitbox to use for collisions, but it has issues of it's own that make it not so good. So basically I'm looking to redo my CD from scratch.
So, like I said, I'd like to know how to differentiate between 'touching' collisions and overlapping collisions, but even a way to keep touching collisions from triggering entirely would work.
I'm coding a small flash game, and wan't to access different functions between classes. In C# I'm used to just making it static, but I'm having some problems with it.Here goes:
Let's I have a class Square that has a several functions. I want to call it from a class Grid, which is a group of Squares.So in the class file for Grid, how would I do this:
Code: public function doSquareFunction(thisFunction:Function):void{ square1.thisFunction();
Is there any way to check if any other movieclip is hitting one specific movieclip (not two specific movieclips) something like --> if(movieClip1.hitTestObject(movieClipX)){
Is there any way to override static functions of Flash top level classes? Lets take Stage or Math for example. What if we want to change Stage.addListener functionality, is there any solution to this problem?
so I'm having this problem where one of my classes can't locate a function. The function it's trying to use is in another class, so I was wondering if there was something special you had to do. This is what I'm basically doing: One class
Let's I have a class Square that has a several functions. I want to call it from a class Grid, which is a group of Squares.So in the class file for Grid, how would I do this:
Code: public function doSquareFunction(thisFunction:Function):void{ square1.thisFunction();
I have Flash project that is set up something like this:
myProject.fla
- document class = myMenu.as
- the document class imports a menu item from menuItem.as (import menuItem;)
I have a function in myMenu.as that sets the text formatting for all the text fields on the page. I want to be able to use this same function in menuItem.as so that all the formatting is consistent & you only have to change it in one place. How do I access this function from both myMenu.as & menuItem.as?
okay, i'm refactoring a huge ActionScript file, and so trying to move some functions into their own classes. why is this not working? i've got a function in my primary class:
// ... private var testBlock:Sprite; public function testingINT() { testBlock = new Sprite();
This probably has a simple solution, but I'm a complete newb to actionscript and I could really use some guidance.I have a file, called Politismos.fla. The document class of this file is: com.plaidfox.PolitismosClassPolitismosClass.as is as follows:
I've been working my way towards better OOP design lately and I've come across a problem with accessing functions in other classes from my Main class. Here is the code:
They are listening for functions that are within the Player.as class, these functions control the dynamics/movement of the player itelf. But for some reason I'm getting a 1120 error(access of undefined property). Basically how do you listen/access for functions within a different class?
asically I have a Player class with methods (i.e. Moving the player) that I want to listen for and implement in the main class. To put it simply, I'm creating the player methods in the player class and then calling them in the Main class. But for some reason I'm having some trouble, I'm still trying to get used to all this OOP design.Here is the (Main) code, it's not alot:
in my Main class, i try to call a function from another class, but when i compile i get this error:1136: Incorrect number of arguments. Expected 1.i have seen some fixes involving an event in the OtherClass and (null) when i call it, but it dosent seem tohere is a code that describes my problem, what do i have to do to make this kind of code work?m i doing it wrong, or do i have to do something else?OtherClass
I was wondering if ActionScript had some way to call functions and classes from variables, like they do in PHP:
function funcname() { print "Potatoes come from tree"; } $function = "funcname"; print $function; // Prints out "funcname" $$function(); // Prints out "Potatoes come from tree"
In case you don't know the syntax for PHP, you should know that anything perpended with a $-symbol is a variable.
I have a flex application that loads swf files and displays them using the SWFLoader object.is there a way to provide different classes and functions for the swf application to use? [code]...
I have a Flash application that creates a sort of powerpoint presentation. All the 'slides' are stored in an XML files which is read and processed.
I'm trying to build the presentation using this XML file. At the moment, my main class has it's initial function main and a static function processXML main initiates my database class with a function called initDB. One of my issues is that initDB forgoes processing because it's dependant on an event listener. On completion of loading the XML files, the event listener initiates my static function on my main to create objects from this file.
The issue is that because the event listener continues the processing (after an indeterminate amount of time), the functions are no longer controlled by the main class.
I'm new to the object oriented stuff and I'm trying to learn how it works. Here's what I've started on - it's led to a few dilemmas. I have one flash file and two .as each with one class. In the timeline of the fla file, it reads: ActionScript Code: var FileObject:ScriptFile = new ScriptFile(); function onEnterFrame(){ FileObject.CallInput(); }
Call input is a function in "ScriptFile.as" that calls another function in "Input.as"; ActionScript Code: class Input{ public function Input(){ } public function keyListener(target:Number):Number{ [Code] .....
In output, when I press Left, it will say -5 over and over again, and I'm trying to add to xpos value but that isn't happening.
Im trying to load some data, but I want to outsource the job of data loading to different classes.lets say XMLLoader class will get the url and return an xml file. The problem now is that such procedures are asynchronous, the class has to wait for XML to load and then call back the caller class and return the xml data.One way of doing this, is returning the data with a custom event. once its loaded then dispatch this event with the data in. However, I was wondering, if there is a way to do it with some sort of asynch call, meaning the caller class sends the request, then waits for a response.is such a thing possible? is there a better way or do I need to stick to my custom events?
I have a rather general question regarding OOP. How do constructor functions execute with multiple class extensions? I'm making an orbital physics simulation, and every spatial body is of the class SpaceObject, which extends Sprite. Then, I have all earth-type planets be of the class Earth, which extends SpaceObject. There are certain parameters that I'd like to set for every single SpaceObject (like position and size) in the constructor function, and certain parameters (like density and mass) that I'd like to set in the constructor of class Earth.But from the main timeline, when I create an instance of class Earth, I can only enter the parameters of the Earth constructor, ie
Code: var planet1:Earth = new Earth(density, mass) Or I can create an instance of SpaceObject:
i wanna ask how do i make a ball bounce off something like a ball bouncing off a bumper in a pinball game? i've tried a lot of times but everytime the ball get stucked to the box and it doesn't move anymore...will be grateful if anyone noes the actionscript of it..
For some reason I can't get this nested set of functions to work, it executes the first tween and the tween invoked after motion of the first is finished but it doesn't ever get to the third!
ActionScript Code: var t1:Tween=new Tween(p1,"rotationY",Strong.easeOut,90,0,50,false); var t1x:Tween=new Tween(p1,"x",Strong.easeOut,-900,0,50,false); t1.addEventListener(TweenEvent.MOTION_FINISH,onMotionFinished);
I have this function in the parent class: ActionScript Code: private m_colors:Array; protected function set colors(clrs:Array):void { m_colors = clrs; }
Then, in my child class I want to call this as: super.colors = [15, 255]; But it throws an error, it says: Ambiguous reference to colors. If I do the same with a common function, not a setter one, then just calling it with its name in my child class works fine.