Ik ben op dit moment een tutorial aan het volgen op http://www.graphicmania.n...flash-using-as3/#comments
Ik loop nu alleen vast bij stap 10
zodra ik mijn spel start lijkt alles te werken, alleen op het moment dat ik bij het eten bent, dan eet hij het niet op en krijg ik ook mijn lichaam erbij.
weet iemand hoe die komt
De code
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.events.Event;
//width hoofd snake
var headWidth:Number = 25;
//hoogte van de hud aan de onderkant van de stage
var hudHeight:int = 50;
//totale nummer van kolommen op de grid
var columns:Number = stage.stageWidth/headWidth;
//totale nummber van rijen op de grid
var rows:Number = (stage.stageHeight - (hudHeight))/headWidth;
//maakt de tiles aan
function grid(): void
{
for(var i:int = 0; i < rows; i++)
{
for(var j:int = 0; j < columns; j++)
{
//haald de Tile uit de libary
var tile:Sprite = new Tile();
//zet de tiles op de plekken
tile.x = (headWidth/2) + (j*headWidth);
tile.y = (headWidth/2) + (i*headWidth);
addChild(tile);
}
}
}
grid();
//hoofd neerzetten op de stage (random)
//hou snake's head vast
var head:MovieClip;
// x positie hoofd
var headX:Number;
//y positie hoofd
var headY:Number;
// houd snake's hoofd en lichaamsdelen vast
var partsArr:Array = new Array();
//houd het voedsel vast
var food:Sprite;
var foodX:Number; //food’s x position
var foodY:Number; //food’s y position
var foodWidth:Number = headWidth; //same as snake’s head for a sake of game play
//initialization
function ini():void
{
//hoofd
//haald de hoofd uit libary
head=new Head();
addChild(head);
//pushed snake;s hoofd in stukjes
partsArr.push(head);
//hoofd op random positie
headX=Math.ceil(((stage.stageWidth - headWidth)/headWidth))*headWidth;
headY=Math.ceil((((stage.stageHeight-hudHeight) -
headWidth)/(headWidth))*Math.random())*headWidth;
//Omdat het hoofd in het midden zit zorg je ervoor dat hij niet op de randjes komt
head.x = headX - headWidth/2;
head.y = headY - headWidth/2;
food = new Food();
addChild(food);
newFood();
}
ini();
//Place the food at random position
function newFood():void
{
foodX = Math.ceil(((stage.stageWidth-foodWidth)/(foodWidth))*Math.random())*foodWidth;
foodY = Math.ceil((((stage.stageHeight-hudHeight)-foodWidth)/(foodWidth))*Math.random())*foodWidth;
//Omdat het hoofd in het midden zit zorg je ervoor dat hij niet op de randjes komt
food.x = foodX - foodWidth/2;
food.y = foodY - foodWidth/2;
//vind nieuwe posityies als het lichaam al op de plek van het eten ligt
for (var i:int = partsArr.length-1;i > 0; i--)
{
if(food.x == partsArr[i].x && food.y == partsArr[i].y)
{
newFood();
}
}
}
//hier laten we de snake van richting veranderen, leuk he, zodat je het niet vergeet!
var direction:String
var running:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, changeDirection);
function changeDirection(e:KeyboardEvent):void
{
//links
if(e.keyCode == 37)
{
direction = "left";
head.rotation = -180;
}
else
//omhoog
if(e.keyCode == 38)
{
direction = "up";
head.rotation = -90;
}
else
//rechts
if(e.keyCode == 39)
{
direction = "right";
head.rotation = 0;
}
else
//down
if(e.keyCode == 40)
{
direction = "down";
head.rotation = 90;
}
if(!running)
{
stage.addEventListener(Event.ENTER_FRAME,moveHead);
running = true;
}
}
//Hier laten we hem dan ook echt bewegen!!! heb je er zin in?
// var = de snelheid van de snake aanpassen
//span korte duur
var keyFrame:int;
//frame op dit moment
var frameNum:int = 0;
//nummer van de aantal frames tussen de 2 keyframes
var span:int=20;
function moveHead(e:Event):void
{
keyFrame = frameNum/span;
if(frameNum/span == keyFrame)
{
// laten begen in de richtingen (x-/x+ y-/y+)
if( direction =="left")
{
head.x -=headWidth;
}
else
if( direction =="up")
{
head.y -=headWidth;
}
else
if( direction =="right")
{
head.x +=headWidth;
}
else
if( direction =="down")
{
head.y +=headWidth;
}
frameNum=0;
if (frameNum==span-1)
{
//checkt of de snake op het voedsel staat oftwel op eet
if(head.x==food.x && head.y==food.y)
{
attachNewPart();
newFood();
}
if(running)
//volgt het volgende stuk lichaam
for(var i:int=partsArr.length-1;1>0;i--)
{
partsArr[i].y=partsArr[(i-1)].y;
partsArr[i].x=partsArr[(i-1)].x;
}
}
}
frameNum++;
}
//var score duidelijk toch?
var score:int=0;
//nieuw lichaamsdeel toevoegen!
function attachNewPart():void
{
var newPart:Sprite=new BodyPart();
addChild(newPart);
//voegt het nieuwe lichaamsdeel toe
partsArr.push(newPart);
score +=5;
score_TF.text=String(score);
}
Ik loop nu alleen vast bij stap 10
zodra ik mijn spel start lijkt alles te werken, alleen op het moment dat ik bij het eten bent, dan eet hij het niet op en krijg ik ook mijn lichaam erbij.
weet iemand hoe die komt
De code
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.events.Event;
//width hoofd snake
var headWidth:Number = 25;
//hoogte van de hud aan de onderkant van de stage
var hudHeight:int = 50;
//totale nummer van kolommen op de grid
var columns:Number = stage.stageWidth/headWidth;
//totale nummber van rijen op de grid
var rows:Number = (stage.stageHeight - (hudHeight))/headWidth;
//maakt de tiles aan
function grid(): void
{
for(var i:int = 0; i < rows; i++)
{
for(var j:int = 0; j < columns; j++)
{
//haald de Tile uit de libary
var tile:Sprite = new Tile();
//zet de tiles op de plekken
tile.x = (headWidth/2) + (j*headWidth);
tile.y = (headWidth/2) + (i*headWidth);
addChild(tile);
}
}
}
grid();
//hoofd neerzetten op de stage (random)
//hou snake's head vast
var head:MovieClip;
// x positie hoofd
var headX:Number;
//y positie hoofd
var headY:Number;
// houd snake's hoofd en lichaamsdelen vast
var partsArr:Array = new Array();
//houd het voedsel vast
var food:Sprite;
var foodX:Number; //food’s x position
var foodY:Number; //food’s y position
var foodWidth:Number = headWidth; //same as snake’s head for a sake of game play
//initialization
function ini():void
{
//hoofd
//haald de hoofd uit libary
head=new Head();
addChild(head);
//pushed snake;s hoofd in stukjes
partsArr.push(head);
//hoofd op random positie
headX=Math.ceil(((stage.stageWidth - headWidth)/headWidth))*headWidth;
headY=Math.ceil((((stage.stageHeight-hudHeight) -
headWidth)/(headWidth))*Math.random())*headWidth;
//Omdat het hoofd in het midden zit zorg je ervoor dat hij niet op de randjes komt
head.x = headX - headWidth/2;
head.y = headY - headWidth/2;
food = new Food();
addChild(food);
newFood();
}
ini();
//Place the food at random position
function newFood():void
{
foodX = Math.ceil(((stage.stageWidth-foodWidth)/(foodWidth))*Math.random())*foodWidth;
foodY = Math.ceil((((stage.stageHeight-hudHeight)-foodWidth)/(foodWidth))*Math.random())*foodWidth;
//Omdat het hoofd in het midden zit zorg je ervoor dat hij niet op de randjes komt
food.x = foodX - foodWidth/2;
food.y = foodY - foodWidth/2;
//vind nieuwe posityies als het lichaam al op de plek van het eten ligt
for (var i:int = partsArr.length-1;i > 0; i--)
{
if(food.x == partsArr[i].x && food.y == partsArr[i].y)
{
newFood();
}
}
}
//hier laten we de snake van richting veranderen, leuk he, zodat je het niet vergeet!
var direction:String
var running:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, changeDirection);
function changeDirection(e:KeyboardEvent):void
{
//links
if(e.keyCode == 37)
{
direction = "left";
head.rotation = -180;
}
else
//omhoog
if(e.keyCode == 38)
{
direction = "up";
head.rotation = -90;
}
else
//rechts
if(e.keyCode == 39)
{
direction = "right";
head.rotation = 0;
}
else
//down
if(e.keyCode == 40)
{
direction = "down";
head.rotation = 90;
}
if(!running)
{
stage.addEventListener(Event.ENTER_FRAME,moveHead);
running = true;
}
}
//Hier laten we hem dan ook echt bewegen!!! heb je er zin in?
// var = de snelheid van de snake aanpassen
//span korte duur
var keyFrame:int;
//frame op dit moment
var frameNum:int = 0;
//nummer van de aantal frames tussen de 2 keyframes
var span:int=20;
function moveHead(e:Event):void
{
keyFrame = frameNum/span;
if(frameNum/span == keyFrame)
{
// laten begen in de richtingen (x-/x+ y-/y+)
if( direction =="left")
{
head.x -=headWidth;
}
else
if( direction =="up")
{
head.y -=headWidth;
}
else
if( direction =="right")
{
head.x +=headWidth;
}
else
if( direction =="down")
{
head.y +=headWidth;
}
frameNum=0;
if (frameNum==span-1)
{
//checkt of de snake op het voedsel staat oftwel op eet
if(head.x==food.x && head.y==food.y)
{
attachNewPart();
newFood();
}
if(running)
//volgt het volgende stuk lichaam
for(var i:int=partsArr.length-1;1>0;i--)
{
partsArr[i].y=partsArr[(i-1)].y;
partsArr[i].x=partsArr[(i-1)].x;
}
}
}
frameNum++;
}
//var score duidelijk toch?
var score:int=0;
//nieuw lichaamsdeel toevoegen!
function attachNewPart():void
{
var newPart:Sprite=new BodyPart();
addChild(newPart);
//voegt het nieuwe lichaamsdeel toe
partsArr.push(newPart);
score +=5;
score_TF.text=String(score);
}
PS4: Falco91Bones [Destiny Clan: DuRP | Vieze-President | http://www.bungie.net/en/Clan/Detail/317154] Stream: http://www.twitch.tv/falco91bones