1151: A conflict exists with definition, i dont understnad - actionscript-3

I am having an error 1151 with AS3
it says
1151: A conflict exists with definition founditems in namespace internal.
I don't understand what I have to change
here it the script I am having the error with
var founditems:Number = 0;
the full script is below
THANKS :D
stop();
inventoryknife.alpha = 0;
inventoryaxe.alpha = 0;
inventoryesports.alpha = 0;
esports.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
axe.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
knife.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
var founditems:Number = 0;
can1.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
can1.addEventListener(MouseEvent.MOUSE_UP, dropObject);
can1.buttonMode = true;
can2.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
can2.addEventListener(MouseEvent.MOUSE_UP, dropObject);
can2.buttonMode = true;
can3.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
can3.addEventListener(MouseEvent.MOUSE_UP, dropObject);
can3.buttonMode = true;
can4.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
can4.addEventListener(MouseEvent.MOUSE_UP, dropObject);
can4.buttonMode = true;
brick1.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick1.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick1.buttonMode = true;
brick2.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick2.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick2.buttonMode = true;
brick3.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick3.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick3.buttonMode = true;
brick4.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick4.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick4.buttonMode = true;
brick5.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick5.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick5.buttonMode = true;
brick6.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick6.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick6.buttonMode = true;
brick7.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick7.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick7.buttonMode = true;
brick8.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick8.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick8.buttonMode = true;
brick9.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick9.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick9.buttonMode = true;
brick10.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
brick10.addEventListener(MouseEvent.MOUSE_UP, dropObject);
brick10.buttonMode = true;
crate1.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate1.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate1.buttonMode = true;
crate2.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate2.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate2.buttonMode = true;
crate3.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate3.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate3.buttonMode = true;
crate4.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate4.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate4.buttonMode = true;
tile1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
tile1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
tile1_mc.buttonMode = true;
{
var inventoryName:String = "inventory" + event.target.name;
var inventoryItem:DisplayObject = getChildByName(inventoryName);
event.target.alpha = inventoryItem.alpha = 100;
founditems ++;
event.target.alpha = 0;
if(founditems == 3)
{
door2_btn.addEventListener(MouseEvent.MOUSE_DOWN, escapeRoom);
}
}

The error is in namespace internal. You write code on timeline (very bad practice) it maybe in another keyframe at the same frame # that variable is already defined. Or you may have some instance on stage with the same instance name...

Related

Drag and drop game sort items to three targets

Please I need some help. I have spent 2 weeks trying to make a drag and drop game In cs4 actionscript 3.0 and am about to give up. I have gotten help so far, but the best suggestion I got was try and start from scratch instead of decompiling someone else's work. so here it is
I have an array that looks like this
var answername:Array = new Array();
var answerdest:Array = new Array();
answername[0] = "gravel";
answerdest[0] = "1";
answername[1] = "Nuts and boltsl";
answerdest[1] = "1";
answername[2] = "water";
answerdest[2] = "2";
answername[3] = "gold";
answerdest[3] = "3";
answername[4] = "Iron";
answerdest[4] = "3";
I need three targets,
and the ability to place the name of the item in my array (this is just a short piece of it) on the screen, if it is dropped on the target matching the answerdest number tor that item it is placed in a column, and the next item my array appears. If not it returns to its starting position. This seems like it should be easy to do but I am not a computer teacher I am a science teacher that is trying to make something for my student to use. I have basic coding skills for cs4.
This is as far as i have gotten but can not Figure out how to get the drag and drop part to check if it is in the correct spot. And get to to create a new drag-able if the answer is correct.
I have created an answer target named "Answer1",
var objectoriginalX:Number;
var objectoriginalY:Number;
Atom.buttonMode = true;
Atom.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
Atom.addEventListener(MouseEvent.MOUSE_UP, dropObject);
Matter.buttonMode = true;
Matter.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
Matter.addEventListener(MouseEvent.MOUSE_UP, dropObject);
function pickupObject(event:MouseEvent):void {
event.target.startDrag();
event.target.parent.addChild(event.target);
}
var dropCount:int = 0;
var dbCount:int=0;
var dbutton0;
function dropObject (event:MouseEvent):void
{
{
event.target.stopDrag();
var targetName = Answer1;
trace (targetName);
var matchingTarget:DisplayObject = getChildByName(targetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == answerdest[1])
{
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);
event.target.buttonMode = false;
alpha = .8
dropCount ++;
event.target.x = 10
event.target.y = (Number(dropCount) * 100);
trace ("hit");
trace (dropCount);
} else
{
event.target.x = 100;
event.target.y = 111;
trace ("miss");
}
}
}
var answername:Array = new Array();
var answerdest:Array = new Array();
answername[0] = "gravel";
answerdest[0] = "1";
answername[1] = "Nuts and boltsl";
answerdest[1] = "Answer1";
answername[2] = "water";
answerdest[2] = "2";
answername[3] = "gold";
answerdest[3] = "3";
answername[4] = "Iron";
answerdest[4] = "3";
text3
text3.text = answername[1];
var myText:TextField = new TextField();
Atom.addChild(myText);
myText.text = answername[1] ;
Thanks for your help. I do not know if I am even on the correct track to do what I need it to do.
partial answer
var answername:Array = new Array();
var answerdest:Array = new Array();
answername[0] = "gravel";
answerdest[0] = "1";
answername[1] = "Nuts and boltsl";
answerdest[1] = "Answer1";
answername[2] = "water";
answerdest[2] = "2";
answername[3] = "gold";
answerdest[3] = "3";
answername[4] = "Iron";
answerdest[4] = "3";
text3
text3.text = answername[1];
This is pretty messy. I'm going to show a slightly better way. Even my method here isn't the best, but it's similar enough to what you are doing to not be hard to adopt.
var answer:Array = [
{_name:"gravel",dest:"1"},
{_name:"Nuts and bolts",dest:"Answer1"},
{_name:"water",dest:"2"},
{_name:"gold",dest:"3"},
{_name:"Iron",dest:"4"}
];
text3 // what is this supposed to do? I didn't get rid of it. But just a string sitting in the middle of your code should be throwing an error. I'd get rid of it.
//text3.text = answername[1]; // now we have a better way!
text3.text = answer[1]._name;
I know this doesn't directly help solve your problem but let's clean up your code and eventually we will figure it out. I just couldn't explain this in just a comment.
var objectoriginalX:Number;
var objectoriginalY:Number;
Atom.buttonMode = true;
Atom.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
Atom.addEventListener(MouseEvent.MOUSE_UP, dropObject);
Matter.buttonMode = true;
Matter.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
Matter.addEventListener(MouseEvent.MOUSE_UP, dropObject);
function pickupObject(event:MouseEvent):void {
event.target.startDrag();
event.target.parent.addChild(event.target);
}
var dropCount:int = 0;
var dbCount:int=0;
var dbutton0;
function dropObject (event:MouseEvent):void
{
event.target.stopDrag();
var targetName = Answer1;
trace (targetName);
var matchingTarget:DisplayObject = getChildByName(targetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == answer[1].dest) // red flag here!
//dest is a String and .parent is a MovieClip.
//They can never be equal. This block of code would never run like this.
{
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);
event.target.buttonMode = false;
alpha = .8
dropCount ++;
event.target.x = 10
event.target.y = (Number(dropCount) * 100);
trace ("hit");
trace (dropCount);
} else
{
event.target.x = 100;
event.target.y = 111;
trace ("miss");
}
}
var answer:Array = [
{_name:"gravel",dest:"1"},
{_name:"Nuts and bolts",dest:"Answer1"},
{_name:"water",dest:"2"},
{_name:"gold",dest:"3"},
{_name:"Iron",dest:"4"}
];
text3.text = answer[1]._name;
var myText:TextField = new TextField();
Atom.addChild(myText);
myText.text = answer[1]._name;

How do I stop my cursor from sticking to objects in flash?

So I've created a game where you must find 3 items, before clicking on the door and winning the game, so theres a few things that stuffing up my game. When you open the game and run it you will see 2 grey rocks on the left hand side, when i click to drag them they stick to the cursor, but when i click the crates to drag them they don't stick, how can i make it like the crates?
stop();
inventorycrowbar_mc.alpha = 0;
inventorypotion_mc.alpha = 0;
inventoryflashlight_mc.alpha = 0;
crowbar_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
potion_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
flashlight_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
var founditems:Number=0;
function pickupObject(event:MouseEvent):void {
event.target.startDrag(true);
}
function dropObject(event:MouseEvent):void {
event.target.stopDrag();
}
crate1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate1_mc.buttonMode=true;
crate2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate2_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate2_mc.buttonMode=true;
crate3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate3_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate3_mc.buttonMode=true;
crate4_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate4_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate4_mc.buttonMode=true;
boulder1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
boulder1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
boulder1_mc.buttonMode=true;
boulder2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
boulder2_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
boulder2_mc.buttonMode=true;
drum3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
drum3_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
drum3_mc.buttonMode=true;
grass_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
grass_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
grass_mc.buttonMode=true;
function escapeRoom(event:MouseEvent):void {
gotoAndStop(2);
}
function objectFound(event:MouseEvent):void {
var inventoryName:String = "inventory" + event.target.name;
var inventoryItem:DisplayObject = getChildByName(inventoryName);
event.target.alpha = inventoryItem.alpha = 100;
founditems ++;
event.target.alpha = 0;
if(founditems == 3){
door_btn.addEventListener(MouseEvent.MOUSE_DOWN, escapeRoom);
}
}
I've attached my flash projection the link below.
https://drive.google.com/file/d/0B-EnwwKnY8EqbDNSX0JyV01NeTA/view?usp=sharing
The game isn't finished so theres a few messed up things as i needed to re-theme the game,just ignore them. The 3 items to find are flashlight, potion and a red wrench, then click on the door to win.

Why am i getting a syntax error in flash?

Below is my actionscript code for flash, but im getting an syntax error on line 65, any ideas why? The code is for a game called escape the room, where the player must find objects to move on and open the door. When i run the flash movie it keeps flashing and i cant drag anything, which im meant to be able too because thats what the code is about.
stop();
inventorykey_mc.alpha = 0;
inventorypotion_mc.alpha = 0;
inventoryswipecard_mc.alpha = 0;
key_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
potion_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
swipecard_mc.addEventListener(MouseEvent.MOUSE_DOWN, objectFound);
var founditems:Number=0;
function pickupObject(event:MouseEvent):void {
event.target.startDrag(true);
}
function dropObject(event:MouseEvent):void {
event.target.stopDrag();
}
crate1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate1_mc.buttonMode=true;
crate2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate2_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate2_mc.buttonMode=true;
crate3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate3_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate3_mc.buttonMode=true;
crate4_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
crate4_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
crate4_mc.buttonMode=true;
drum1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
drum1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
drum1_mc.buttonMode=true;
drum2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
drum2_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
drum2_mc.buttonMode=true;
drum3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
drum3_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
drum3_mc.buttonMode=true;
bin1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
bin1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);
bin1_mc.buttonMode=true;
function escapeRoom(event:MouseEvent):void {
gotoAndStop(2);
}
function objectFound(event:MouseEvent):void {
var inventoryName:String = "inventory" + event.target.name;
var inventoryItem:DisplayObject = getChildByName(inventoryName);
event.target.alpha = inventoryItem.alpha = 100;
founditems ++;
event.target.alpha = 0;
*if(founditems = = 3){*
door_btn.addEventListener(MouseEvent.MOUSE_DOWN, escapeRoom);
}
}

Save the coordinates position of a child

I've got these functions :
private function onEmptySpaceClicked(e:MouseEvent):void{
var myVar = e.currentTarget.name;
if (e.currentTarget.name == "ES1"){
trace("click on one");
clickPuzzles.click1 = true;
}
if (e.currentTarget.name == "ES2"){
trace("click on two");
clickPuzzles.click2 = true;
}
public function buildIt(e:MouseEvent):void{
if (clickPuzzles.click1){
test.x = e.currentTarget.x;
test.y = e.currentTarget.y;
test.visible = true;
}
}
The builIt function is called by an other class.
Everything is working, but, is it possible to save e.currentTarget.x and y on the "onEmptySpaceClicked" function as a value ?
And then use it in my buildIt function ?
Like :
private function onEmptySpaceClicked(e:MouseEvent):void{
var myVar = e.currentTarget.name;
if (e.currentTarget.name == "ES1"){
trace("click on one");
clickPuzzles.click1 = true
e.currentTarget.x && e.currentTarget.y = valueOfEs1
}
if (e.currentTarget.name == "ES2"){
trace("click on two");
clickPuzzles.click2 = true
e.currentTarget.x && e.currentTarget.y = valueOfEs2
}
public function buildIt(e:MouseEvent):void{
if (clickPuzzles.click1){
test.position = valueOfEs1
test.visible = true;
}
if (clickPuzzles.click2){
test.position = valueOfEs2
test.visible = true;
}
}
Thank you for your help
EDIT
Thank you for you advices.
Here's what I did :
private function onEmptySpaceClicked(e:MouseEvent):void{
trace("click on it neww");
var myVar = e.currentTarget.name;
var valXes1;
var valYes1;
var valXes2;
var valYes2;
if (e.currentTarget.name == "ES1"){
trace("il faut écouter emplacement");
clickPuzzles.click1 = true;
valXes1 = e.currentTarget.x;
valYes1 = e.currentTarget.y;
trace(valXes1);
}
if (e.currentTarget.name == "ES2"){
trace("il faut écouter emplacement VARI");
trace("puzzle2 est vrai");
clickPuzzles.click2 = true;
valXes2 = e.currentTarget.x;
valYes2 = e.currentTarget.y;
trace(valXes2);
}
}
public function buildIt(e:MouseEvent):void{
var valXes1;
var valYes1;
var valXes2;
var valYes2;
if (clickPuzzles.click1){
test.x = valXes1
test.y = valYes1
test.visible = true;
}
if (clickPuzzles.click2){
trace("puzzle2 is called");
test.x = valXes2
test.y = valYes2
test.visible = true;
}
}
The puzzles 2 or 1 are well called but it seems that valXes1 and valXes2 have exactly the same value (valYes1 and valYes2 too).
What did I do wrong ?
EDIT 2
Ok, so I've positioned emptyspace and emptyspace 2 like that :
emptyspace .x = 0;
emptyspace .y = 0;
emptyspace2.x = 50;
emptyspace2.y = 50;
In the function onEmptySpaceClicked
if (e.currentTarget.name == "ES1"){
trace("il faut écouter emplacement");
clickPuzzles.click1 = true;
valXes1 = e.currentTarget.x;
valYes1 = e.currentTarget.y;
trace(valXes1);
}
if (e.currentTarget.name == "ES2"){
trace("il faut écouter emplacement VARI");
trace("puzzle2 est vrai");
clickPuzzles.click2 = true;
valXes2 = e.currentTarget.x;
valYes2 = e.currentTarget.y;
trace(valXes2);
the trace(valXes1) is 0 and the trace(valXes2) is 50.
So it's working.
BUT,
in this function :
public function buildIt(e:MouseEvent):void{
var valXes1;
var valYes1;
var valXes2;
var valYes2;
if (clickPuzzles.click1){
test.x = valXes1
test.y = valYes1
test.visible = true;
}
if (clickPuzzles.click2){
trace("puzzle2");
test.x = valXes2
test.y = valYes2
test.visible = true;
}
}
the trace("puzzle2") is showing (good) but the test position is = at valYes1 and valXes1
(so the "test" movieclip is position at the wrong place)
Do you know what's wrong ?
yes but instead of
e.currentTarget.x && e.currentTarget.y = valueOfEs1
you would
valXes1 = e.currentTarget.x;
valYes1 = e.currentTarget.y;
or create a Point object and place x and y in a single Point
import flash.geom.Point;
es1Point = new Point();
es2Point = new Point();
es1Point.x = e.currentTarget.x;
es1Point.y = e.currentTarget.y;
etc etc ...

Moving a Generated Grid with Keyboard

I'm trying to move a generated grid with keyboard...
When I try my .swf file, it runs but keyboard...
It's for a platform game as Mario, so you should fine some code lines who haven't sense there, but I insure you they will !
So, this is my AS :
var map:Array = [
[1,1,1,1,1,1,10,0,0,11,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,1],
[1,0,0,0,0,0,6,1,0,0,4,4,4,4,0,0,6,1,0,1],
[1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,1,6,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,6,0,0,1,0,0,1,0,0,1,0,0,1,2,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
];
var stock:Array = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
];
function createMap():void{
for (var i:int=0; i<20; i++){
for (var j:int=0; j<15; j++){
var T:int = 32
var dT:int = T*.5
var f:int = map[j][i]
if(f>0) {
var t:Block = new Block()
t.x= i*T;
t.y= j*T;
t.gotoAndStop(f)
grid.addChild(t)
}
}
}
}
var grid:MovieClip = new MovieClip();
addChild(grid);
createMap();
stage.addEventListener(KeyboardEvent.KEY_DOWN, pushin);
stage.addEventListener(KeyboardEvent.KEY_UP, pushout);
var right:Boolean=false;
var left:Boolean=false;
var up:Boolean=false;
var down:Boolean=false;
var lateral:Boolean = false;
var saute:Boolean = false ;
var none:Boolean = true
function paramMap():void {
grid.sens = int(right)-int(left);
grid.up = int(up)-int(down)
grid.jump = -int(up)*11
none = !right && !left && !up && !down
lateral = right || left;
function movingGrid():void{
var L:int
var C:int
var Ls:int
var Cs:int
var A:Object
var B:Object
var Y:Number
var P:Array
with(grid){
x += vit*sens;
L = y/T;
C = x/T;
Ls = (y+T-1)/T;
Cs = (x+vit*sens)/T;
P = checkLateral(grid,L,Cs,vit*2,(y-dT)/T)
L = P[0]
Cs = P[1]
A = stock[L][C]
B = stock[Ls][C]
Y = (L-1)*T
y += gravite;
if (gravite++>T) gravite=T
}
}
}
function pushin(event:KeyboardEvent):void {
if (event.keyCode == 38) up = true;
if (event.keyCode == 40) down = true;
if (event.keyCode == 39) right = true;
if (event.keyCode == 37) left = true;
}
function pushout(event:KeyboardEvent):void {
if (event.keyCode == 38) up = false;
if (event.keyCode == 40) down = false;
if (event.keyCode == 39) right = false;
if (event.keyCode == 37) left = false;
}
Thank you !
I see a couple of problems right now:
paramMap and its inner function movingGridare never called by anyone. You may want to hook them to an ENTER_FRAME event listener or call them when the user presses a key.
the vit and T attributes of grid are not in this part of the code, so it throws a ReferenceError when I test. Same goes for the checkLateral.
When those issues are solved, the grid object moves correctly. But because it's an empty movieclip, you can't actually see it yet. You need to add visible children to it or move an existing object. Here's the stripped code, correctly moving grid left and right:
var grid:MovieClip = new MovieClip();
addChild(grid);
stage.addEventListener(KeyboardEvent.KEY_DOWN, pushin);
stage.addEventListener(KeyboardEvent.KEY_UP, pushout);
var right:Boolean = false;
var left:Boolean = false;
var up:Boolean = false;
var down:Boolean = false;
var lateral:Boolean = false;
var saute:Boolean = false;
var none:Boolean = true;
function paramMap():void
{
grid.sens = int(right) - int(left);
grid.up = int(up) - int(down);
grid.jump = - int(up) * 11;
none = ! right && ! left && ! up && ! down;
lateral = right || left;
var L:int;
var C:int;
var Ls:int;
var Cs:int;
var A:Object;
var B:Object;
var Y:Number;
var P:Array;
with (grid)
{
x += sens;
L = y;
C = x;
Ls = (y - 1);
Cs = (x + sens);
}
}
function pushin(event:KeyboardEvent):void
{
if (event.keyCode == 38)
{
up = true;
}
if (event.keyCode == 40)
{
down = true;
}
if (event.keyCode == 39)
{
right = true;
}
if (event.keyCode == 37)
{
left = true;
}
paramMap();
trace(grid.x, grid.y);
}
function pushout(event:KeyboardEvent):void
{
if (event.keyCode == 38)
{
up = false;
}
if (event.keyCode == 40)
{
down = false;
}
if (event.keyCode == 39)
{
right = false;
}
if (event.keyCode == 37)
{
left = false;
}
}