Avatar billede anders77 Nybegynder
01. august 2001 - 18:49 Der er 31 kommentarer og
1 løsning

hitTest

Hej

Kan nogen fortælle mig hvad der skal gøres for at hittesten på nedenstående spil til at virke korrekt?

Fejl nu består i at den laver hittest på hele skibets ramme og ikke kun skibet, som det burde.

Den tjekker på det grønne område.

Koden ser sådan her ud:

onClipEvent (enterFrame) {
    if (this.hitTest( _root.background.hit)) {
        _root.health = _root.health-1;
        _root.xspeed = 0;
        _root.yspeed = 0;
        _root.ship.xlration = 0;
    }
}


se http://www.thingholm.dk/spil

VH

Anders
Avatar billede lingoman Nybegynder
01. august 2001 - 20:33 #1
Hej Anders,

Det du skal bruge er en anden syntaks.

hitTest( x, y, ShapeFlag) i stedet for den standard  hitTest(MC)

Shapeflag = true vil sørge for at det kun er din shape som registrer hit
Shapeflaf = false vil registrere hit indenfor MC\'ens ramme

mvh geo
Avatar billede anders77 Nybegynder
01. august 2001 - 20:39 #2
--> lingoman

Hvodan vil koden så se ud?

Jeg tester et hit mellem \"ship\" og \"area\"...
Avatar billede lingoman Nybegynder
01. august 2001 - 21:26 #3
Hej,

Der er 2 tidligere spørgsmål hvor netop dit spørgsmål besvares.

HitTest Problemer!  http://www.eksperten.dk/spm/88860
underlige hit test    http://www.eksperten.dk/spm/89517

Ikke fordi jeg ikke vil hjælpe dig men det ville spare mig for en masse tid hvis du lige læste mine indlæg i disse spørgsmål :)

Hvis du så stadig har nogle tvivl står jeg til rådighed, så sig til når du er klar!

mvh geo
Avatar billede anders77 Nybegynder
01. august 2001 - 23:27 #4
Hej igen,

Kan jeg lokke dig til at kigge på koden?

I så fald, hvad er din mail?
Avatar billede lingoman Nybegynder
01. august 2001 - 23:51 #5
Fik du læst de andre spørgsmål ?
Avatar billede anders77 Nybegynder
01. august 2001 - 23:53 #6
yes, men det driller stadigvæk :-(
Avatar billede anders77 Nybegynder
02. august 2001 - 00:13 #7
Som du kan se på adressen nedenunden virker det 50% - jeg kan ikke få sat mit boundry område på skibet - den laver hittest på midterpunktet...


www.thingholm.dk/spil
Avatar billede lingoman Nybegynder
02. august 2001 - 00:14 #8
Jeg kan ikke love dig andet end at jeg vil kigge på det, så du bliver nok nød til at også selv forsøge dig frem.

min email er geo@lingoman.dk

mvh geo
Avatar billede lingoman Nybegynder
02. august 2001 - 00:17 #9
Jeg kan intet se på siden andet end en hvid swf ??
Avatar billede anders77 Nybegynder
02. august 2001 - 00:19 #10
Avatar billede lingoman Nybegynder
02. august 2001 - 00:25 #11
Cool Spil !

Du vil altså gerne være i stand til at teste om kanterne af skibet kolliderer med vægene?
Avatar billede anders77 Nybegynder
02. august 2001 - 00:26 #12
yes!
Avatar billede lingoman Nybegynder
02. august 2001 - 00:28 #13
Ja der kommer intet frem i Netscape under www.thingholm.dk/spil/, men det kan godt ses i IE.
Avatar billede anders77 Nybegynder
02. august 2001 - 00:29 #14
ok, jeg er slet ikke begyndt at optimere endnu...
Avatar billede lingoman Nybegynder
02. august 2001 - 01:01 #15
Ok, her er en måde hvorved du for den til at kun registrere hits med kanten af skibet.

Det nemmeste for dette tilfælde ville nok være at teste 5 punkter langs skibs kanten, fks de fem hjørner på skibet.
Vi skal også lave et hittest for hvert skarpt hjørne (3) på væggen med Skibet som shape

DVS vi kun tester hjørner

1.)Alle hittests med Shape syntaksen
2.)Skibet\'s shape testes for hits med de 3 skarpe væg hjørner
3.)Væg Shape testes for hits med 5 skibshjørner.

Så han du være sikker på at din hittests bliver rigtige.

Med 8 gange så mange hittests bliver vi nød til at optimere koden: Derfor sørg for at hittest tjek afsluttes så snart blot et hittest=true er fundet.

mvh geo

Avatar billede lingoman Nybegynder
02. august 2001 - 01:23 #16
en sidste kommntar

Når du tjekker de 5 skibs punkter bruger du lokalToGlobal()
Når du tjekker de 3 background (væg) punkter bruger du blot stage koordianterne direkte i dine HitTest(x,y,ShapeFlag)
ShapeFlag = 1 i alle dine tests
Avatar billede anders77 Nybegynder
02. august 2001 - 09:16 #17
Hej igen

Jeg vil smide 15 point oveni hvis jeg kan lokke dig til at påbegynde koden...
Avatar billede lingoman Nybegynder
02. august 2001 - 12:52 #18
Du behøver ikke at give mig dine sidste points.

Jeg vil gerne lave koden men jeg kunne se fra dit spørgsmål og din kode at du har styr på ActionScript. Derfor ville jeg gerne nøjes med at give nogle forslag til hvordan man evt. kunne takle opgaven så du selv kunne skrive koden.

Hvis du ikke længere føler du selv kan klare det, vil jeg gerne hjælpe til

mvh geo

Avatar billede anders77 Nybegynder
02. august 2001 - 12:54 #19
Hej igen

Jeg vil meget gerne have en hånd med koden :-)
Avatar billede lingoman Nybegynder
02. august 2001 - 12:57 #20
Ok, ser på hitTest()
Avatar billede anders77 Nybegynder
02. august 2001 - 18:19 #21
Hvordan ser det ud? Er det helt umuligt?
Avatar billede lingoman Nybegynder
03. august 2001 - 11:10 #22
Undskyld forsinkelsen, jeg kigger på det nu!
Avatar billede anders77 Nybegynder
03. august 2001 - 11:11 #23
Skide godt!
Avatar billede lingoman Nybegynder
03. august 2001 - 14:19 #24
Jeg har fået testene til at virke.
Sætter nu de andre punkter ind.
Avatar billede anders77 Nybegynder
03. august 2001 - 14:25 #25
GREAT! Jeg er så spændt at jeg er lige ved at tisse i bukserne...
Avatar billede lingoman Nybegynder
03. august 2001 - 14:59 #26
Alle 5 punkter på skib virker. Kode optimeret.
Tilføjer de 3 væg punkter.
Avatar billede anders77 Nybegynder
03. august 2001 - 15:02 #27
Kanon - vil du maile den til anders@thingholm.dk
Avatar billede lingoman Nybegynder
03. august 2001 - 16:36 #28
Ja OK!

Du tilføjer vægpunkterne på samme måde som jeg har gjort for shipMC.

Dog er det vægMC\'en som tjekker sine 3 hjørne punkter for hitTest med (instance) ship.

Jeg har modificeret din collision() funktion lidt.

I stedet for at teste for hits i denne funktion, lader jeg MC ship teste sig selv for hittest med vægMC.
Hvis hitTest = true, kaldes din _root.collision(test) med test = 1 .

Skibet drejer stadig selvom den kolliderer, derfor bør du inaktivere yderligere drejninger ved at modificere collision().

Har sendt fla fil til dig, og håber du kan bruge det!

mvh geo
Avatar billede lingoman Nybegynder
03. august 2001 - 18:43 #29
Blev du tilfreds med hitTest ?
Avatar billede lingoman Nybegynder
04. august 2001 - 15:00 #30
Har du modtaget filen?
Avatar billede anders77 Nybegynder
05. august 2001 - 20:15 #31
Undskyld det sene svar, men jeg har været væk på weekend. Det ser fantastisk ud og jeg takker mange gange...

:-)
Avatar billede lingoman Nybegynder
05. august 2001 - 20:21 #32
Det er jeg glad for at høre  :-)

og selv tak! det var dejligt at se dit velstruktureret værk!

mvh geo
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester