Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

(AS3 FLASH) Geen nieuw lichaam

Pagina: 1
Acties:
  • 178 views

  • Falco91Bones
  • Registratie: Maart 2011
  • Laatst online: 26-01-2018
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);

}

PS4: Falco91Bones [Destiny Clan: DuRP | Vieze-President | http://www.bungie.net/en/Clan/Detail/317154] Stream: http://www.twitch.tv/falco91bones


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sorry, maar zo werkt het hier niet. Als je code post, gebruik dan code tags (Hoe post je code?) en beperk je dan enkel tot relevante stukken code; geen lappen van hier-tot-tokyo. Ook verwachten we veel meer eigen inzet (zie onze Quickstart voor zaken die we hier graag terugzien in een topicstart) waaronder, in de Devschuur in 't bijzonder, alles wat je hebt ondernomen om je probleem zelf op te lossen middels debugging (Debuggen: Hoe doe ik dat?).

Open gerust een nieuw topic, maar neem dan wel even voorgaande linkjes door en in acht ;) Neem voor de zekerheid dan ook nog even Waar hoort mijn topic? door :)

[ Voor 8% gewijzigd door RobIII op 12-01-2012 03:38 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.