Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

How to test collisions 2 diffrent classes

Guest
Jul 27, 2016 Jul 27, 2016

hey everyone, I am a new member o the community(and programming in general). I am trying to make a game but am having troubles. My game is based around flipping between two layers of the world. You start on the white one, and can flip too the black one(and vice versa). The layers are made of tiles that are 10* 10. The problem is with the flipping animation. I have  1* 1 pixels that start at the top left corner and spread diagonally. What I want is when the pixels hit a tile, for the tile to play a disappearing animation, revealing the layer beneath. But the blue tiles can't detect when they are hit by a pixel.

      

main: (I put a Y beside the lines in main that relate to my problem)

package {

  import flash.display.*;

  import flash.events.*;

  import flash.display.MovieClip;

  public class Main extends MovieClip {

  //objects

  private var blueTile: BlueTileMC

  private var redTile: RedTileMC

  private var whiteTile: WhiteTileMC

  private var blackTile: BlackTileMC

  private var flipPixel: FlipPixelMC

  //private variables

  private var row: int = 0

  private var collem: int = 0

  private var place: int = 0

  private var currentArray: String = 'WhiteArray'

  private var BlackArray: Array = new Array();

  private var WhiteArray: Array = new Array()

  private static var _instance: Main

  public static function get instance(): Main {

  return _instance

  }

  public function Main() {

  // constructor code

  BlackArray = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

  ]

  WhiteArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

  ]

  makeWhiteStage()

  FlipStageButton.addEventListener(MouseEvent.CLICK, onFlipClick)

  stage.addEventListener(Event.ENTER_FRAME, hitTest)

  }

  private function hitTest(event: Event): void {          Y

  if (blueTile.hitTestObject(flipPixel)) {                Y

  trace("howdy")                                          Y

  }                                                       Y

  }                                                       Y

  private function onFlipClick(event: MouseEvent): void {

  if (currentArray == 'WhiteArray') {

  //makeBlackStage()

  //makeWhiteStage()

  flipPixel = new FlipPixelMC()

  stage.addChild(flipPixel)

  flipPixel.y = 5

  flipPixel.x = 5

  } else if (currentArray == 'BlackArray') {

  flipPixel = new FlipPixelMC()

  stage.addChild(flipPixel)

  flipPixel.y = 5

  flipPixel.x = 5

  }

  }

//generates White stage

  //1 = white tile

  //0 = blue sky tile

  //2 = black tile

  //3 = red sky tile

  private function makeWhiteStage(): void {

  for (var i: int = 0; i < WhiteArray.length; i++) {

  if (WhiteArray == 0) {

  blueTile = new BlueTileMC()

  addChild(blueTile)

  blueTile.x = (i - row * 30) * 10 + 5

  blueTile.y = row * 10 + 5

  } else if (WhiteArray == 1) {

  whiteTile = new WhiteTileMC()

  addChild(whiteTile)

  whiteTile.x = (i - row * 30) * 10 + 5

  whiteTile.y = row * 10 + 5

  } else if (WhiteArray == 2) {

  blackTile = new BlackTileMC()

  addChild(blackTile)

  blackTile.x = (i - row * 30) * 10 + 5

  blackTile.y = row * 10 + 5

  } else if (WhiteArray == 3) {

  redTile = new RedTileMC()

  addChild(redTile)

  redTile.x = (i - row * 30) * 10 + 5

  redTile.y = row * 10 + 5

  } else if (WhiteArray == 4) {

  }

  for (var c: int = 1; c < 30; c++) {

  if (i == c * 30 - 1) { // if 22 collums have gone by, move on to next row

  row++

  }

  }

  }

  }

//generates black stage

  private function makeBlackStage(): void {

  for (var i: int = 0; i < BlackArray.length; i++) {

  if (BlackArray == 0) {

  blueTile = new BlueTileMC()

  addChild(blueTile)

  blueTile.x = (i - row * 30) * 10 + 5

  blueTile.y = row * 10 + 5

  } else if (BlackArray == 1) {

  whiteTile = new WhiteTileMC()

  addChild(whiteTile)

  whiteTile.x = (i - row * 30) * 10 + 5

  whiteTile.y = row * 10 + 5

  } else if (BlackArray == 2) {

  blackTile = new BlackTileMC()

  addChild(blackTile)

  blackTile.x = (i - row * 30) * 10 + 5

  blackTile.y = row * 10 + 5

  } else if (BlackArray == 3) {

  redTile = new RedTileMC()

  addChild(redTile)

  redTile.x = (i - row * 30) * 10 + 5

  redTile.y = row * 10 + 5

  }

  for (var c: int = 1; c < 30; c++) {

  if (i == c * 30 - 1) { // if 22 collums have gone by, move on to next row

  row++

  }

  }

  }

  }

  }

}

BlueTileMC

package {

  import flash.events.*;

  import flash.display.MovieClip;

  public class BlueTileMC extends MovieClip {

  public var hit:Boolean = false;

  public function BlueTileMC() {

  // constructor code

  this.stop()

  this.addEventListener(Event.ENTER_FRAME, onEnter)

  }

  private function onEnter(event: Event): void {

  if (this.hitTestObject(FlipPixelMC)) {

  if (this.currentFrame != 6) {

  this.play()

  } else {

  this.removeEventListener(Event.ENTER_FRAME, onEnter);

  this.parent.removeChild(this);

  }

  }

  }

  }

}

FlipPixelMC

package {

  import flash.display.MovieClip;

  import flash.display.Sprite;

  import flash.events.*;

  public class FlipPixelMC extends MovieClip {

  private var flipPixel: FlipPixelMC;

  private var used: Boolean = false;

  private var selfDestructCounter: Number = 0

  private var _main: MovieClip;

  public function FlipPixelMC() {

  // constructor code

  this.addEventListener(Event.ENTER_FRAME, onEnterFrame)

  }

  private function beginClass(e: Event): void {

  _main = Main.instance;

  }

  private function onEnterFrame(event: Event) {

  if (used == false) {

  makeNewPixel();

  }

  }

  private function makeNewPixel() {

  if (this.x < 300 && y == 5) {

  flipPixel = new FlipPixelMC

  stage.addChild(flipPixel)

  flipPixel.x = this.x + 10

  flipPixel.y = this.y

  used = true

  }

  if (this.y < 300) {

  flipPixel = new FlipPixelMC

  stage.addChild(flipPixel)

  flipPixel.x = this.x

  flipPixel.y = this.y + 10

  used = true

  }

  selfDestructCounter++

  if (selfDestructCounter != 0) {

  this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);

  this.parent.removeChild(this);

  }

  }

  }

}

If my explanation sucked, I am very sorry

TOPICS
ActionScript
183
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jul 29, 2016 Jul 29, 2016
LATEST

don't you see an error about FlipPixelMC being undefined (possibly along with other errors)?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines