Avatar billede bmdk Nybegynder
02. november 2003 - 16:37 Der er 5 kommentarer og
1 løsning

"Bullet" fortsætter ud af stage

Hejsa, jeg har gang i at lave et lille spil. Sidder med det problem, at min bullet som jeg skyder afsted blot fortsætter ud af bunden på min stage og kan derfor ikke komme til at skyde igen :(

Nogen der har et bud på hvad der skal stå i mit bulletscript for at den stopper når den rammer bunden af stage og jeg kan komme til at skyde igen?

På forhånd tak for hjælpen.
Avatar billede kanding Nybegynder
02. november 2003 - 17:21 #1
du kan gemme størrelsen på din stage i en variabel:

pStageSize = (the stage).rect[4] - (the stage).rect[2]

så kan du i det loop der bevæger din bullet's position teste for om bullet er større end stage størrelse

on exitframe me
if sprite(10).locv > pStageSize then
-- her skal du så tillade at skyde igen og resette bullet til din pistol eller hvad det nu er for en
end if

end
Avatar billede bmdk Nybegynder
02. november 2003 - 17:30 #2
Hmm, skal ikke prale af jeg er den vildeste haj i director, det ser meget rigtig ud det du skriver der, kanding.. men er ikke sikker på hvor jeg skal skrive variablen og if sætningen der.. Kan være du vil hjælpe mig med det? mit script ser ud som følger:

property mySprite, shooting, skorstene



on beginsprite me
 
  set mySprite to the spritenum of me
  set shooting to false
  set skorstene to [6, 7, 8]
  set the visible of sprite mySprite = 0
 
end

on exitframe me

    if shooting then
      set myV to the locV of sprite mySprite
     
      if myV < 0 then
        set shooting to false
        set the locV of sprite mySprite to -999
        return
      end if
    end if
   
    set possibleTargets to skorstene
   
    repeat with target = 6 to 8
     
      if sprite mysprite intersects target then
       
        hit sprite target
       
        deleteOne possibleTargets, target
       
        if possibleTargets = [] then
         
        end if
       
        set shooting to false
        set the locV of sprite mysprite to -999
       
      end if
     
    end repeat
   
    set the locV of sprite mysprite to myV - -7
   
  end if
 
end

on shoot me

  if shooting then

    return

  end if

  set shooting to true

  set the loc of sprite mysprite to the loc of sprite 5

end
Avatar billede kanding Nybegynder
02. november 2003 - 18:48 #3
pStageSize = (the stage).rect[4] - (the stage).rect[2] sætter du i beginSprite handleren. Husk at declare den som property i toppen.

I din exitframe skal du indsætte testen lige efter

set the locV of sprite mysprite to myV - -7

Hvorfor laver du en - -7, så lægger du jo faktisk 7 til ??
Avatar billede bmdk Nybegynder
02. november 2003 - 18:54 #4
Hey igen :)
Jeg har prøvet at gøre som du skriver der, men det der sker nu er, at min bullet bare kommer frem ved kanonen og bliver der(ingen mulighed for at skyde igen)

Grunden til jeg har skrevet - -7 er, at den skal jo bevæge sig mod bunden, står der: - 7 bevæger den sig mod toppen.

ærlig indrømmet: jeg er lost ;)
Avatar billede kanding Nybegynder
02. november 2003 - 19:40 #5
du skal vel også sætte:
set shooting to false

Prøv:
set the locV of sprite mysprite to myV + 7
Avatar billede bmdk Nybegynder
02. november 2003 - 20:03 #6
Tak for din hjælp kanding :)
Jeg fandt selv ud af en smule fusk ;) det jeg gjorde var, at jeg smed et transperent field ned i bunden af min stage og når så bullet intesecter det field skal den gå tilbage til min kanon! :)

Fusk? ja, men det virker da :)
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