Archief - hitTestObject AS3 en Arrays

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

UraMastah

Legacy Member
Hallo, ik zit met een probleem waarbij ik een game moet maken voor een eindopdracht in Flash AS3 en mijn concept bestaat uit een mijner in een karretje dat pegels moet ontwijken en diamanten moet vangen.

Het enige probleem is dus op deze moment dat ik een hitTestObject heb gebruikt maar dat ik enkel 1 item uit mijn array kan oproepen waarbij mijn hitTestObject van toepassing in omdat ik mijn pegels random laat aanmaken en dus niet weet hoeveel pegels or op elke moment op het scherm aanwezig zijn.

Is er een mogelijkheid om mijn array te definiëren zodat deze de items tussen laat ons zeggen 1 en 200 oproept en daar mijn hitTestObject aan koppelt ?

mijn code ziet er zo uit:

public function setNextStone()
{
nextStone= new Timer(200+Math.random()*1000,1);
nextStone.addEventListener(TimerEvent.TIMER_COMPLETE, newStone);
nextStone.start();
}

Hierboven wordt mijn pegel random gegenereerd

public function checkForHits(event:Event)
{
if(stones[0].hitTestObject(miner))
{
trace("test");
}

}

En hier roep ik de hitTestObject op

zoals je ziet staart er nu stones[0] en pakt hij dus enkel het eerste item in de array maar die moet alle items in de array worden.....


Ik weet dat het een zeer lange post is maar ik zou het zeer op prijs stellen moest er iemand kunnen helpen, mijn punten van mijn eindwerk hangen er namelijk een beetje van af ;) .

UraMastah

Legacy Member
Njah eindopdracht voor richting Multimedia maar is wel eerste jaar dat we AS3.0 zien en zijn er nog maar ca 3-4 maand mee bezig zodus :P

Ikzelf snap helemaal niets van AS3.0 alles is afgeleid van basic tutorial en hulp van mensen in mijn klas die er wel iets van snappen :P dus enige uitleg die gegeven wordt gelieve het uit te leggen aan iemand die dus geen enkel verstand heeft van AS 3.0 :P

YaMo

Legacy Member
Om te weten hoe je loopt door een array moet je nu niet bepaald een ActionScript expert zijn, denk ik...
Moeten jullie daar ook geen websites maken enzo? Dan kan je toch ook al wat javascript?
ActionScript is min of meer een mengeling van Java en Javascript.
Leren ze jullie daar niet de basis van programmeren voor je Flash games moet gaan maken?

Maar bon, om iets te testen voor elk item in een array moet je dus in een for lus elk item afgaan, wat toch redelijk duidelijk uitgelegd wordt in Zero Grav zijn link.
En je zal het misschien niet geloven, maar er bestaat nog meer documentatie over AS3, die je zomaar kunt raadplegen, en daar kan je dan te weten komen dat arrays in AS3 ook speciale functies hebben om voor elk element een functie uit te voeren.

Recipe4hate

Legacy Member
No offense, maar looping leer je toch net voor/na branching. Iets wat je dus zeker in de eerste 2 maanden leert.
Met het stukje van Zero Grav kom je al een heel eind.

UraMastah

Legacy Member
Recipe4hate zei:
No offense, maar looping leer je toch net voor/na branching. Iets wat je dus zeker in de eerste 2 maanden leert.
Met het stukje van Zero Grav kom je al een heel eind.

Normaal wel jah maar bij ons gaat het er dus een heel pak anders aan toe m.a.w. ze geven ons een tutorial en zeggen ons gewoon maak een game a.d.h.v. deze tutorial zonder eige uitleg..... geweldig dus... zo hebben we als eerste game via tutorial Pong moete maken xD.

UraMastah

Legacy Member
Recipe4hate zei:
Waar volg jij dan les?

TSM Mechelen :P njah is toch mijn laatste jaar nu in die richting en ga daarna waarschijnlijk een andere richting doen maar jah moet er dan wel door zijn dit jaar eerst :P

UraMastah

Legacy Member
heb uiteindelijk dan toch een for lus kunnen gebruiken om mijn hitTestObject toe te passen op al mijn items in mijn Array maar van het ene probleem kwam het andere en nu heb ik mijn pegels die verdwijnen vanaf een bepaalde x-waarde maar de hitTestObject eigenschap blijft wel staan op de plaats waar ze verdwijnen xD

voor degene die zich er in interesseren en hun tijd voor willen gebruiken heb ik alle bestanden van mijn spel online ter beschikking gesteld xD. het is een bestand van 0,9MB dus niet te groot :P

Flash-game bestand <- download

UraMastah

Legacy Member
Zero Grav zei:
Als de hitTest waar is en ge wist dat object, dan moet ge dat object ook wissen uit de array: AS3: Arrays

jah nee da moet dus ni gebeuren het is zo dat als mijn pegels een bepaalde x-waarde bereiken dan verdwijnen ze,
niet als de hitTestObject waar is .

YaMo

Legacy Member
UraMastah zei:
jah nee da moet dus ni gebeuren het is zo dat als mijn pegels een bepaalde x-waarde bereiken dan verdwijnen ze,
niet als de hitTestObject waar is .

En als ze verdwijnen moet je ze dus ook uit de array verwijderen, bedoelt hij. Tenzij je ze later opnieuw wilt gebruiken ofzo...

UraMastah

Legacy Member
Man man man.... daarom werk ik dus nooit met AS 3.0 xD ik snap er niets van haha ik snap dat je de array moet splicen maar in mijn code heb ik dit:

if (y > 425)
{
deleteStone();
}

Als dit gebeurt moet dus ook mijn Array gespliced worden maar zoals gezegd snap ik de ballen van AS3.0 en wil dit dus liefst zo snel mogelijk achter mij hebben. Ik stel alle hulp die ik hier al gekregen heb van iedereen zeer hard op prijs en sorry als ik jullie hiermee erger :(

Recipe4hate

Legacy Member
Welke 'steen' doe je weg? Volgens mij weet je method deleteStone() niet welke steen nu zijn y-val heeft gehaald.

UraMastah

Legacy Member
public function moveStone(event:Event)
{
//get time passed
var timePassed:int = getTimer()-lastTime;
lastTime += timePassed;

//move plane
this.y += dx*timePassed/1000;

//check to see if stone hits floor
if (y > 425)
{
deleteStone();
}
}

// delete stone from stage and stone list
public function deleteStone()
{
removeEventListener(Event.ENTER_FRAME, moveStone);
parent.removeChild(this);
}

Dit is de volledige code voor mijn move en delete functies en btw heb mijn bestand vanboven in een link gezet als je het wil downloaden daar staat dan weer alle code netjes :P en het is maar 0,9mb groot :P
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan