Mezzer Skrevet 22. april 2010 Del Skrevet 22. april 2010 Hei. Jobber for tiden med en skoleprosjekt hvor vi skal lage en virtuell nettbutikk. Til nå har vi tegnet både karakteren,bakgrunnen og diverse andre ting samt programmert litt. På nettet har jeg kun lest om hvordan man kan navigere seg fra scene til scene ved å klikke med musen, men vi har laget en avatar som kan styres med piltastene. Mitt spørsmål blir derfor; Hvordan skrives koden når vår avatar går inn i en bygning?(Da skiftes scenen når han går til døren) Kan lime inn starten av koden hvis det er til noe hjelp(har laget det slik at når han treffer døren nå, kommer det bare opp en melding om at døren er truffet. Vil skifte scene istedenfor!) stage.addEventListener(Event.ENTER_FRAME, hitTest); function hitTest(event:Event) { if (avatar_mc.hitTestObject(rect1)) { txt_hit.text ="Du har truffet døren" } else { txt_hit.text = ""; } { if (avatar_mc.hitTestObject(parkometer1)) txt_hit.text = "Du har truffet parkometeret"; } { if (avatar_mc.hitTestObject(parkometer2)) txt_hit.text = "Du har truffet parkometeret"; } } stop(); avatar_mc.gotoAndStop(1); avatar_mc.venstrefot_mc.gotoAndStop(1); avatar_mc.hoyrefot_mc.gotoAndStop(1); nedenfor denne koden ligger variablene for å styre med piltastene, hvordan figuren roteres når piltastene brukes, når karakteren skal gå og stoppe osv. Tror ikke resten av koden er relevant for hva jeg er ute etter:p Lenke til kommentar
Kaptein Snus Skrevet 22. april 2010 Del Skrevet 22. april 2010 Du fortalte ikke om du programmerte i AS2 eller AS3, men håper du bruker AS3.. Slik? if(avatar_mc.hitTestObject(rect1)) { gotoAndPlay(FRAME, "SCENE NAVN"); } Lenke til kommentar
Mezzer Skrevet 22. april 2010 Forfatter Del Skrevet 22. april 2010 Bruker CS4 og AS3:) Men dette fungerer likevell ikke.. Kommer bare opp denne feilmeldingen i debuggingen: TypeError: Error #2007: Parameter hitTestObject must be non-null. at flash.display::DisplayObject/_hitTest() at flash.display::DisplayObject/hitTestObject() at flash_fla::MainTimeline/hitTest()[flash_fla.MainTimeline::frame1:13] Cannot display source code at this location. Kanskje det er lettere å ta til neste frame istedenfor? Hva blir koden så isåfall da? Lenke til kommentar
maxM Skrevet 22. april 2010 Del Skrevet 22. april 2010 if (avatar_mc.hitTestObject(rect1)) { gotoAndPlay(25); } Da vil du gå til frame nr. 25. Dette er koden om du skriver actions på scenen. Om du skriver koden fra en annen plass, eksempelvis ett movieclip, må du bruke. stage.gotoAndPlay(25); Lenke til kommentar
Mezzer Skrevet 22. april 2010 Forfatter Del Skrevet 22. april 2010 if (avatar_mc.hitTestObject(rect1)) { gotoAndPlay(25); } Da vil du gå til frame nr. 25. Dette er koden om du skriver actions på scenen. Om du skriver koden fra en annen plass, eksempelvis ett movieclip, må du bruke. stage.gotoAndPlay(25); Hvis jeg bruker denne metoden så får jeg likevel feilmelding:S Bruker denne koden: stage.addEventListener(Event.ENTER_FRAME, hitTest); function hitTest(event:Event) { if(avatar_mc.hitTestObject(rect1)) { gotoAndStop(2); } Her vil jeg frem til scene 2, men når jeg bruker denne koden får jeg denne samme meldingen: TypeError: Error #2007: Parameter hitTestObject must be non-null. at flash.display::DisplayObject/_hitTest() at flash.display::DisplayObject/hitTestObject() at flash_fla::MainTimeline/hitTest()[flash_fla.MainTimeline::frame1:14] Cannot display source code at this location. Det flashen går ut på er at man befinner seg utenfor en bygning. Når personen, som jeg styrer med piltastene, går til døren skal bildet skifte seg til innenfor bygningen. Jeg har prøvd både koden får å skifte scenen og for å skifte frame(som denne ovenfor), men har fremdeles det samme problemet. Antar dere skjønte hva jeg var ute etter, men ville bare presisere det. Det kommer på det samme om jeg bruker neste frame eller scene, men jeg må bare få d til.. Det eneste som skal skje er at bakgrunnen skal skiftes ut og litt mer koding i form av produkt kjøp o.l(Dette har jeg i orden). Plages bare med å få ny scene eller eventuelt en ny frame for å få frem den nye bakgrunnen. Vil helst bruke ny scene koden, men får det ikke til. Lenke til kommentar
Mezzer Skrevet 22. april 2010 Forfatter Del Skrevet 22. april 2010 Hvis jeg bruker denne koden: stage.addEventListener(Event.ENTER_FRAME, hitTest); function hitTest(event:Event) { if(avatar_mc.hitTestObject(rect1)) { gotoAndStop(1, "Scene 8"); } \\ Scene 8 er navnet på scenen jeg vil bruke på frame 1 Så får jeg følgende feilmelding: TypeError: Error #1009: Cannot access a property or method of a null object reference. at flash_fla::MainTimeline/hitTest()[flash_fla.MainTimeline::frame1:14] Hva kan være galt her? Lenke til kommentar
Kaptein Snus Skrevet 22. april 2010 Del Skrevet 22. april 2010 Har du prøvd å søke opp feilmeldingene du får, på google? Ser ut som om det er noe feil med hitTestObject. Lenke til kommentar
maxM Skrevet 23. april 2010 Del Skrevet 23. april 2010 Etter hva jeg leser her kan det hende du burde prøve: if(avatar_mc.hitTestObject(rect1) == true) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå