Toon posts:

Flash Movieclip hit + counter

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem met het maken met een spelletje. Ik heb een vliegtuig, die wil ik laten schieten (movieclip heet "laser") dat doet ie ook. Maar als hij iets moet raken ( movieclip, heet "doel") kan hij het niet tellen (Dynamic text heet "score"). Ik ben met deze action aan het proberen.

onClipEvent (load) {
if (hitTest(this, laser)) {
score = score+1;
}
}

ik heb ook al gekeken op dit forum, maar de actions die ik daarbij kreeg leverde niets op. Om een beter beeld te krijgen heb ik de swf op http://members.lycos.nl/crawlertjuh/spaceship.swf gezet.

Ik wil dus de counter laten werken als je met de "laser" over de "doel" heen gaat.
Alvast bedankt,

Crawl

Verwijderd

klopt het pad naar je variabele score wel?

Verwijderd

Topicstarter
jah want hij zet ook in het begin eerst de score op 0
in een aparte layer

score = 0;

die variable, als ie ut daarmeej doet moet nartuurlijk ook de andere variable in de bovenste action doen.

Verwijderd

volgens mij verwijst jouw variabele in je clipevent naar een variabele score in de movieclip waaraan je de hittest hebt vastgehangen (mc doel, neem ik aan)

  • roytanck
  • Registratie: Oktober 1999
  • Laatst online: 07-07 09:29
als "score" een dynamic textfield is moet je de waarde zetten met score.text = "bla"; . In dat geval zou ik een variabele maken ("score" bijv., maar dan moet je de textfield wel ff iets anders noemen), en daar de score in bijhouden zoals jij dat doet... Na elke verandering roep je dan een updateScore functie aan die em in het textfield laat zien...

  • roytanck
  • Registratie: Oktober 1999
  • Laatst online: 07-07 09:29
Verwijderd schreef op 24 april 2003 @ 15:30:
jah want hij zet ook in het begin eerst de score op 0
in een aparte layer

score = 0;

die variable, als ie ut daarmeej doet moet nartuurlijk ook de andere variable in de bovenste action doen.
Kijk even naar je variabelen, het kan zo maar zijn dat je meerdere "score" variabelen in verschillende objecten hebt...

Verwijderd

score.text werkt toch alleen in mx?

  • roytanck
  • Registratie: Oktober 1999
  • Laatst online: 07-07 09:29
ja, .text = alleen MX ja... Wordt nergens over een oudere versie gesproken toch?

  • roytanck
  • Registratie: Oktober 1999
  • Laatst online: 07-07 09:29
onClipEvent is trouwens ook zwaar ouderwets TS :)

Ik zie nu pas dat je onClipEvent(load) gebruikt, maar om op de hittest te blijven testen moet dat enterFrame zijn lijkt me?

Verwijderd

waarom heb je de hittest overigens in clipevent(load) staan en niet in clipevent(enterFrame)? nu checkt ie maar 1x
edit:
adhv opmerking over mx keek ik ook nnar clipevent maar was te laat...

[ Voor 27% gewijzigd door Verwijderd op 24-04-2003 15:41 ]


Verwijderd

Topicstarter
ik heb het omgewisseld naar EnterFrame, maar dat geeft geen verschil. Wat moet ik nu precies doen met die .txt.. dat begryp ik niet helemaal. Ik heb de FLA bestand ook maar ff op lycos gezet..

http://members.lycos.nl/crawlertjuh/spaceship.fla

Verwijderd

je variabele score staat in je root. probeer eens _root.score++ ipv score ++

Verwijderd

Topicstarter
maakt ook al geen verschil...

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 10:32

GrimaceODespair

eens een tettenman, altijd ...

Je hittest is gewoon niet goed. Je te raken object kijkt alleen naar laser, en niet naar die gedupliceerde versies.

Je zou dit kunnen opvangen door de laser zelf een hittest te laten doen op zijn onEnterFrame. Ik geloof toch dat die onEnterFrame met die hittest dan wordt meegedupliceerd. Maar dat is denk ik wel meer overhead dan wanneer je dat te raken object laat itereren over lasers.

Samengevat: ofwel laat je je gedupliceerde lasers checken of zij het object raken, ofwel laat je het object nagaan of ie met elke van de gedupliceerd lasers wel of geen hit heeft.

[ Voor 74% gewijzigd door GrimaceODespair op 24-04-2003 16:09 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

als je een hitTest laat uitvoeren op basis van een "onEnterFrame" actie, dan mag de laser maar 1 frame lang op het doel zitten, indien dat niet zo is dan zal er elke keer dat de onenterframe actie loopt en de laser (nog steeds) op het doel is de score plus 1 tellen (dus met 1 laser -> wordt de score 6 ipv 1)

Verwijderd

Topicstarter
zou je die action eens kunnen kopieren? van die OnEnterFrame? ik snap namelyk niet precies hoe die werkt. doe namelyk nog maar het eerste jaar ict, en daar zit een heel klein beetje Flash in...

  • roytanck
  • Registratie: Oktober 1999
  • Laatst online: 07-07 09:29
Verwijderd schreef op 24 april 2003 @ 15:46:
Wat moet ik nu precies doen met die .txt.. dat begryp ik niet helemaal.
Je zei in je opening post dat je een dynamic tekst genaamd "score" had. Later bleek dat dat een variabele was, waar een textfield weer op "geabonneerd" is, da's wat anders...

Verwijderd

als je de laser laat verdwijnen bij een hittest heb je het probleem van dubbele tellingen niet meer...

Verwijderd

Topicstarter
hij doet het nu iig wel, maar door die fps teld hij er idd 5 bij. misshcine moet ik dan maar in een enemy gewoon een deel maken die hij kan raken, en de rest om te tekenen... zodat ie maar over een klein streekje meeteld. iig BEDANKT =)
Pagina: 1