00:00
00:00
Newgrounds Background Image Theme

Matilly just joined the crew!

We need you on the team, too.

Support Newgrounds and get tons of perks for just $2.99!

Create a Free Account and then..

Become a Supporter!

Need help with AS3 collision

1,009 Views | 1 Reply
New Topic

Need help with AS3 collision 2016-05-02 07:52:49


I am currently having to make a game in AS3 for college, I have never done any kind of programming until now so I am struggling a lot.
I basically just been taking bits here and there from different tutorials and mashing them up which was working for a while but now I have gotten onto collision it's just not working, I am not getting any errors but the collision does not work if anyone would be willing to help me out here it would be much appreciated.

source file-
Game file

code-
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var downKeyDown:Boolean = false;

var xScrollSpeed:Number = 10;
var yScrollSpeed:Number = 10;

var mainSpeed:Number = 5;

var mainJumping:Boolean = false;

var jumpSpeedLimit:int = 15;

var jumpSpeed:Number = 0;

var leftBumping:Boolean = false;
var rightBumping:Boolean = false;
var upBumping:Boolean = false;
var downBumping:Boolean = false;

var leftBumpPoint:Point = new Point(-25, -25);
var rightBumpPoint:Point = new Point(25, -25);
var upBumpPoint:Point = new Point(0, -25);
var downBumpPoint:Point = new Point(0, 0);

Player.addEventListener(Event.ENTER_FRAME, moveChar);
function moveChar(event:Event):void{

if(leftKeyDown){
Player.x -= mainSpeed;
}
if(rightKeyDown){
Player.x += mainSpeed;
}
if(upKeyDown || mainJumping){
mainJump();
}
}

stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
function checkKeysDown(event:KeyboardEvent):void{

if(event.keyCode == 37 || event.keyCode == 65){
leftKeyDown = true;
}
if(event.keyCode == 38 || event.keyCode == 87){
upKeyDown = true;
}
if(event.keyCode == 39 || event.keyCode == 68){
rightKeyDown = true;
}
if(event.keyCode == 40 || event.keyCode == 83){
downKeyDown = true;
}
}
stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
function checkKeysUp(event:KeyboardEvent):void{

if(event.keyCode == 37 || event.keyCode == 65){
leftKeyDown = false;
}
if(event.keyCode == 38 || event.keyCode == 87){
upKeyDown = false;
}
if(event.keyCode == 39 || event.keyCode == 68){
rightKeyDown = false;
}
if(event.keyCode == 40 || event.keyCode == 83){
downKeyDown = false;
}
}

function mainJump():void{

if(!mainJumping){

mainJumping = true;
jumpSpeed = jumpSpeedLimit*-1;
Player.y += jumpSpeed;
} else {

if(jumpSpeed < 0){
jumpSpeed *= 1 - jumpSpeedLimit/75;
if(jumpSpeed > -jumpSpeedLimit/5){
jumpSpeed *= -1;
}
}
if(jumpSpeed > 0 && jumpSpeed <= jumpSpeedLimit){
jumpSpeed *= 1 + jumpSpeedLimit/50;
}
Player.y += jumpSpeed;
}
}

stage.addEventListener(Event.ENTER_FRAME, loop);

function loop(e:Event):void{
if(leftKeyDown){
background.x += xScrollSpeed;

} else if(rightKeyDown){
background.x -= xScrollSpeed;

}

if(upKeyDown){
background.y += yScrollSpeed;

} else if(downKeyDown){
background.y -= yScrollSpeed;

}

if(background.hitTestPoint(Player.x + leftBumpPoint.x, Player.y + leftBumpPoint.y, true)){
trace("leftBumping");
leftBumping = true;
} else {
leftBumping = false;
}

if(background.hitTestPoint(Player.x + rightBumpPoint.x, Player.y + rightBumpPoint.y, true)){
trace("rightBumping");
rightBumping = true;
} else {
rightBumping = false;
}

if(background.hitTestPoint(Player.x + upBumpPoint.x, Player.y + upBumpPoint.y, true)){
trace("upBumping");
upBumping = true;
} else {
upBumping = false;
}

if(background.hitTestPoint(Player.x + downBumpPoint.x, Player.y + downBumpPoint.y, true)){
trace("downBumping");
downBumping = true;
} else {
downBumping = false;
}
if(leftBumping){
if(Player.x < 0){
Player.x *= -0.5;
}
}
//the 'Player.x' and 'Player.y' was 'xSpeed' and 'ySpeed' in the original tutorial but this was coming up with an error so I changed it to so.
if(rightBumping){
if(Player.x > 0){
Player.x *= -0.5;
}
}

if(upBumping){
if(Player.y < 0){
Player.y *= -0.5;
}
}

if(downBumping){
if(Player.y > 0){
Player.y *= -0.5;
}
}
}

Response to Need help with AS3 collision 2016-05-02 16:11:40


This forum is for non-game related programming, you're welcome to post in the Games Development forum. You can also wrap your code in code tags to preserve formatting and make it a little easier for others to read.