Avatar billede rusen Nybegynder
28. oktober 2003 - 11:43 Der er 11 kommentarer og
2 løsninger

jeg skal have ting til at komme ind på skærmen i forsk rækkefølge

Hej med jer c,")

Jeg er ved at lave et skydespil, hvor man skal skyde pengesedler ned(henholdsvis 50, 100, 500 og 1000,- sedler), der udover skal der komme nogle ansigter ind som man ikke må ramme, jeg skal vide hvordan man gør sådan at de kommer ind på skærmen i random rækkefølge.

håber i kan hjælpe
Avatar billede kanding Nybegynder
28. oktober 2003 - 11:51 #1
Et lignende spørgsmål har jeg lige svaret på her: http://www.eksperten.dk/spm/419341
Prøv at læse det og se om det hjælper ellers stil uddybende spørgsmål
Avatar billede rusen Nybegynder
28. oktober 2003 - 11:52 #2
ok thx. kigger lige på det.....
Avatar billede rusen Nybegynder
28. oktober 2003 - 12:06 #3
http://brennan.young.net/Edu/Lingvad.html <-- det er dette tutorial jeg følger, men i stedet for at invaderne kører frem og tilbage hen over skærmen, skal mine(pengesedler og ansigter) komme fra den ene side og køre ud af billedet på den anden side af skærmen. derfor skal de komme ind i random rækkefølge. Ansigterne skal give minus point hvis man rammer dem, og omvendt med penge sedlerne, point systemet er ikke noget problem, det er mere det der med at få dem ind i random rækkefølge.
jeg har jo ikke kun en(f.eks flyet som skal smide pakker tilfældigt), jeg har jo en del, kan jeg evt. bare sætte det andet script ind på hvert object som skal køre hen over skærmen og på den måde få dem til at komme ind på skærmen i random rækkefølge.
Avatar billede rusen Nybegynder
28. oktober 2003 - 12:14 #4
er det andet svar min løsning, ville jeg gerne have det uddybet en smule, blandt andet med hvor og hvad jeg skal sætte det forskellige kode på...
Avatar billede kanding Nybegynder
28. oktober 2003 - 12:27 #5
Du kan bare lave en flyver. Forstået på den måde at du laver et object der styrer random på de forskellige penge/ansigter. Om du laver en behavior på en pixel og sætter den uden for stage eller lavet et parent script(læs: object) er lige meget. Lav det du synes bedst om. Hvis du laver den sidste kan du sådan set bruge forslagene fra det andet svar.

Arbejds rækkefølgen er lettest hvis du først laver en behavior til alle ansigter og pengeseddeler. De skal bevæge sig over skærmen og de skal først gøre det når man kalder dem med sendSprite(5, #move) eller lign.
Når du har lavet og testet det, så kan du tage scriptet fra tidligere svar og ændre sendsprite(2,#shoot) til sendSprite(5, #move). Måske er der lige lidt mere nørkleri, men prøv det her først.

Husk at du kan bruge message vinduet til at fyre kald af fx. kan du skrive sendsprite(5,#move) og trykke return
Avatar billede rusen Nybegynder
28. oktober 2003 - 12:38 #6
kigger igen
Avatar billede rusen Nybegynder
28. oktober 2003 - 15:05 #7
har siddet og leget lidt med det, men kan ikke rigtigt få det til at virke, enten kører alle på engang eller også kører de slet ikke... Altså nogen gange skal der komme ansigter og andre gange penge sedler, således at de bliver blandet uden at krydse hinanden
Avatar billede rusen Nybegynder
28. oktober 2003 - 15:06 #8
har fået dem til at krydse skærmen en gang for derefter at starte forfra i min scene
Avatar billede rusen Nybegynder
28. oktober 2003 - 15:07 #9
men de skulle helst komme ind lidt forskelligt, således at e bliver blandet
Avatar billede kanding Nybegynder
28. oktober 2003 - 16:17 #10
OK jeg glemte også en ting. De sprites der skal kaldes skal i en liste. Det gøres smartest ved at lade dem tilføje sig selv. I det script du har på alle dine penge og ansigter skal du i din beginSprite handler lave dette:

on beginSprite me
if voidP(gSpriteList) then
gSpriteList = []
end if
gSpriteList.add(me.spritenum)
end

Når du er færdig med at bevæge dig, altså uden for stage(endestationen) laver du igen en:
gSpriteList.add(me.spritenum)

Hvorfor du skal tilføje den igen forstår du sikkert bedre når du læser det sidste.

Til sidst i den handler der kalder sendSprite(5, #move) skal du lige inden finde en sprite:

ran = random(gSpriteList.count)
spr = gSpriteList[ran]
gSpriteList.deleteAt(ran)

også kalde med :
sendSprite(spr, #move)

Her har vi altså slettet vores sprite nummer, men det bliver tilføjet igen hvis vi ikke når at klikke på den og den når helt til endestationen.
Avatar billede rusen Nybegynder
29. oktober 2003 - 11:25 #11
jeg kan stadig ikke få det til at virke, når jeg sætter det første script ind, melder den fejl... --> handler definition expected....
Hvis ikke det er for krævende ville jeg gerne hvis du ville fortælle lidt mere om hvor jeg skal sætte de forskellige ting på...  Det skal lige siges at jeg først startede med director for første gang for ikke så lang tid sien...
Avatar billede kanding Nybegynder
29. oktober 2003 - 11:48 #12
kan du ikke sende den til mig på john@spritelab.dk, så skal jeg kigge og skrive kommentarer i koden. Hvis du er ny, så forvirrer det nok mer med en lang frem og tilbage her på Eksperten. Hvis bare du afslutningsvis vil skrive hvordan vi løste problemet her, så andre også kan få glæde af det.
Avatar billede rusen Nybegynder
29. oktober 2003 - 13:33 #13
jeg har fundet en alternativ løsning, men har fået nogle problemer med noget lyd.... har iøvrigt oprettet et nyt spm der til.... men jeg synes nu alligevel at du fortjener nogle point, for din hjælpsomhed.....
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
Kurser inden for grundlæggende programmering

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