Avatar billede Six Nybegynder
23. oktober 2003 - 21:17 Der er 4 kommentarer og
1 løsning

2 elementer rammer hinanden. Lingo

Hej.

Hvordan laver man sådan. At f.eks. når jeg nu har en bold, og et bat. Hvordan tæller man så op når man rammer bolden?

der skal ikke være animation eller noget, det skal bare være "On collision" value +1 hvis i kan følge mig.

Hvis det ikke er alt for besværligt må der da gerne være noget animations kode med, men det er ikke nødvendigt :)

Jeg kører hele min "film" i frame 1, og koder de forskellige events.
Avatar billede kanding Nybegynder
24. oktober 2003 - 00:10 #1
Den simpleste animation af en bold.

script på bolden:
on exitframe me
sprite(me.spritenum).locV = sprite(me.spritenum).locV + 5
end

Her har vi en bold der statisk flytter sig 5 pixels nedad hver exitframe.

Hvis det skal være en bold, så skal der jo være tyngdekraft og sammestøds reaktioner.
Logikken er at du når du er på vej nedad lægger lidt til din speed og på vej opdad trækker lidt fra, samt har en generel speed der bliver mindre. Der er masser af scripts på nettet der opfører sig sådan. Prøv f.eks. www.mediamacros.com

Med hensyn til sammestød, så kan du bruge intersect functionen. Du skal være klar over at intersect kan misse hvis f.eks. din bold rykker med med end battest tykkelse. Den kan så i nogle tilfælde være først før battet og bagefter efter battet. Altså vil de slet ike mødes. Der er flere løsninger på dette, bla. noget med at teste på intersection et skridt fremad, ikke ved hjælp af intersect funktionen, men ved hjælp at lidt matematik. Der er også masser af eksempler på det.
Her er et lille bat og bold scripti sin simpleste form:(tegn en bold og et bat og sæt bolden oppe i toppen og bolden nede i bunden. Battet i sprite 2)


-------- script ------------------
property pSpeed

on beginSprite me
  pSpeed = 5
end

on exitframe me
  sprite(me.spritenum).locV = sprite(me.spritenum).locV + pSpeed
  if sprite(me.spriteNum).intersects(2) then
    pSpeed = -5
  end if
end
Avatar billede Six Nybegynder
27. oktober 2003 - 13:11 #2
Hov kanding.. undskyld jeg havde glemt at acceptere!

jeg takker mange gange for dit svar! :)

det kan være du lige kan hjælpe mig med et spørgsmål mere?

----------------- SCRIPT ------------------

property pSpeed, stagewidth, mySprite
on beginSprite me
  set mySprite to the spritenum of me
  pSpeed = 10
  set stagewidth to the width of the rect of the stage
end

on exitframe me
  sprite(me.spritenum).locH = sprite(me.spritenum).locH + pSpeed
  if sprite(me.spritenum).locH > 800 Then
    sprite(me.spritenum).locH = -170
  end if
  if sprite(me.spritenum).locH > 0 and the locH of sprite mySprite < stagewidth then
    sendsprite(2,#shoot)
  end if
end

---------------Slut---------------

Det script der, hvordan får jeg den til at lave sendsprite(2,#shoot) random istedet for on exitframe me ?
Avatar billede Six Nybegynder
27. oktober 2003 - 13:28 #3
kanding: Jeg fører mit spørgsmål til dig, videre her http://www.eksperten.dk/spm/419341

Der står også lidt flere informationer og sådan. Så hvis du skulle have tid/lyst til at hjælpe så ville det være dejligt
Avatar billede kanding Nybegynder
27. oktober 2003 - 13:29 #4
jeg forstår ikke spørgsmålet: lave sendsprite(2,#shoot) random istedet for on exitframe me ?
Avatar billede Six Nybegynder
27. oktober 2003 - 13:40 #5
Hvis du læser i det spørgsmål jeg referede til, står der lidt mere om det.

Men når jeg gør det via exitframe sker det hvergang exitframe er opfyldt, og der ikke er en sprite i forvejen.

Jeg vil have den til at smide en pakke random, altså, med forskellige tidsrum og ikke "Statisk" som med exitframe, med exitframe sker sendsprite(2,#shoot) 2 gange, og det er altid samme sted på stage det sker.

Skal vi ikke føre den videre i det andet spørgsmål ?
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