Avatar billede dweb Nybegynder
03. maj 2001 - 08:41 Der er 8 kommentarer og
1 løsning

Random billeder

Hvordan laver man et script der kan få billeder til at komme et random sted på skærmen og i en random størrelse??

VH Jesper
Avatar billede crunch Nybegynder
03. maj 2001 - 08:45 #1
--sådan her: (dine billeder skal ligge fra sprite 10 til 20)



property x
on enterframe
  repeat with x = 10 to 20 -- en lykkee som tæller de ti sprites op.
    set the loch of sprite x = random(560) -- tallet skal være et tilfældigt tal indenfor scenens bredde som er 480
    set the locv of sprite x = random(440) -- tallet skal være et tilfældigt tal indenfor scenens hoejde som er 640
  end repeat 
end
Avatar billede crunch Nybegynder
03. maj 2001 - 08:45 #2
--sådan her: (dine billeder skal ligge fra sprite 10 til 20)



property x
on enterframe
  repeat with x = 10 to 20 -- en lykkee som tæller de ti sprites op.
    set the loch of sprite x = random(560) -- tallet skal være et tilfældigt tal indenfor scenens bredde som er 480
    set the locv of sprite x = random(440) -- tallet skal være et tilfældigt tal indenfor scenens hoejde som er 640
  end repeat 
end
Avatar billede crunch Nybegynder
03. maj 2001 - 08:46 #3
ups. ranodm størrelse sætter du på samme måde

property x
on enterframe
  repeat with x = 10 to 20 -- en lølle som tæller de ti sprites op.
set the width of sprite x = random(100)
set the height of sprite x = random(100)
    set the loch of sprite x = random(560) -- tallet skal være et tilfældigt tal indenfor scenens bredde som er 480
    set the locv of sprite x = random(440) -- tallet skal være et tilfældigt tal indenfor scenens hoejde som er 640
  end repeat 
end
Avatar billede dweb Nybegynder
03. maj 2001 - 09:04 #4
Og hvor skal jeg skrive det ??

script error: Handler not defined

property x


#property

????
Avatar billede dweb Nybegynder
03. maj 2001 - 09:15 #5
Jeg fatter det ikke!!!

Hjælp!
Avatar billede ask-m Nybegynder
03. maj 2001 - 09:26 #6
Hvormange billeder er der \"at vælge\" imellem på hvor stor skærm, og hvor ofte skal de skifte?

Ask-M
Avatar billede kanding Nybegynder
03. maj 2001 - 16:37 #7
Hvis billederne ikke må overlappe, så bør de næsten være placeret på stage hvor du så skifter member og sætter størrelsen fra fuld størrelse og nedad. Hvis de godt må overlappe kunne det være noget som det her:

-- scene størrelse
  stageW = the stage.rect[3] - the stage.rect[1]
  stageH = the stage.rect[4] - the stage.rect[2]
 
  -- bitmap størrelse
  RandomSize = random(50)
  sprite(1).width = sprite(1).width - RandomSize
  sprite(1).height = sprite(1).height - RandomSize
 
  --  placering
  randomWidthRange = stageW - sprite(1).width
  randomHeightRange = stageH - sprite(1).height
 
  sprite(1).locH = random(randomWidthRange)
  sprite(1).locV = random(randomHeightRange)

Der er kun den ting her at vi sætter hele tiden bitmap ned i størrelse og til sidst vil den være helt væk, så vi skal have gemt den oprindelige størrelse, så evt lav ovenstående til en behavior og så lav en:

on beginsprite me
pMemWidth = sprite(me.spriteNum).width
pMemHeight = sprite(me.spriteNum).height
end

her efter kunne du kalde med sendAllSprites(#shuffle) eller hvad du nu vælger at kalde handleren
Avatar billede lingoman Nybegynder
03. maj 2001 - 17:29 #8
Hej Jesper,

Du skal blot lave en kopi af det folgende script og vælg \"Behavior\" i castmember info dialog.
Vælg denne behavior for alle de billeder du vil have til at opføre sig på denne måde og lad den loope i en frame med

on exitframe
  go to the frame
end

------------------------------------BehaviorScript
property myStartRect  --billedets oprindlige ramme
property scaleMax    --størst tilladt skalering
property scaleMin    --mindst tilladt skalering , ej nul
property fraction    --tager højde for at random funktionen kun giver hele tal, vi vil også have decimaltal
property randomRange
property stageLimits  --sørger for at placere sprite indenfor stage
property mySprite

on beginSprite me
  set mySprite = the spriteNum of me
  set myStartRect = sprite(mySprite).rect
  set myLeftOffset = the left of myStartRect
  set myTopOffset = the top of myStartRect
  set myStartRect = myStartRect - rect(myLeftOffset,myTopOffset,myLeftOffset,myTopOffset) --nultil til øvre-ventre
  set scaleMax = 5  --du kan selv regulere her;
  set scaleMin = .3
  set fraction = 1/scaleMin
  set stageLimits = the rect of the stage
 
  set randomRange = integer(scaleMax * fraction)
end

--opdater billede
on exitFrame me
  RandomPlace me
end

on randomPlace me
 
  -- first skaleres spriten
  set randomInteger = random(randomRange)
  set randomScaleFactor = 1.000 * randomInteger * scaleMin --decimal mellem scaleMin og scaleMax
  set scaledRect = randomScaleFactor * myStartRect  --spriteRect skaleret
 
  --derefter sørger vi for at placere den skalerede sprite et tilfældigt sted indenfor stage rammen
 
  --find ud af hvor meget plads der er til rådighed
 
  set excessRect = stageLimits - scaledRect  --(0,0,x,y); negative tal betyder at sprite rager ud
 
  set horizontalRange = integer(the right of excessRect)
  set verticalRange = integer(the bottom of excessRect)
 
  --negative tal betyder at sprite rager ud find mindre scaleMax of prøv igen
 
  if (horizontalRange <= 0) or (verticalRange <= 0) then
    if ScaleMax > 1 then
      set scaleMax = scaleMax - 1
      randomPlace me
    else
      alert \"scaleMax must be greater than 1\"
      exit
    end if
  end if
 
  set randomHorizontal = random(horizontalRange)
  set randomVertical = random(verticalRange)
 
  set myNewRect = scaledRect + rect(randomHorizontal, randomVertical,randomHorizontal, randomVertical)
 
  sprite(mySprite).rect = myNewRect
 
end

Send en email til geo@lingoman.dk hvis du vil have den færdige .dir.

Held og lykke!
Mvh

Geo


Avatar billede dweb Nybegynder
24. maj 2001 - 21:03 #9
lukket
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