Avatar billede dante2003 Nybegynder
28. februar 2003 - 15:16 Der er 5 kommentarer og
1 løsning

2 knapper over hinanden

Hej,

Mit problem er at jeg har lavet en knap, og når man trykker på denne bevæger den sig lidt nedad, og når man slipper knappen vender den tilbage til sin oprindelige sted.
Problemet er bare at der er et billede som også skal følge ned når man klikker på knappen, og det ser ud til at det kun er lige præcis den gældende sprite der bevæger sig!

Kan man få begge sprites til at bevæge sig med et enkelt klik, eller kan man på nogen måde "binde" de 2 sprites sammen?

kode :

on mousedown
set the loc of sprite (the currentspritenum) to point((sprite(the currentspritenum).locH + 2) (sprite(the currentspritenum).locv + 2)) 
end

on mouseup
set the loc of sprite (the currentspritenum) to point(value(sprite(the currentspritenum).locH - 2) value(sprite(the currentspritenum).locv - 2)) 
end

det samme script er på begge knapper
håber i kan hjælpe :)
Avatar billede medieroed Praktikant
28. februar 2003 - 16:48 #1
Den hurtige måde er at skrive:

on mousedown
set the loc of sprite (1) to point((sprite(the currentspritenum).locH + 2) (sprite(1).locv + 2))
set the loc of sprite (2) to point((sprite(the currentspritenum).locH + 2) (sprite(2).locv + 2))   
end

on mouseup
set the loc of sprite (1) to point(value(sprite(the currentspritenum).locH - 2) value(sprite(1).locv - 2))
set the loc of sprite (2) to point(value(sprite(the currentspritenum).locH - 2) value(sprite(2).locv - 2)) 
end

så behøver du kun at smide scriptet på den øverste sprite.
Indrømmet det er ikke særligt pænt lavet, men det virker..
Avatar billede kanding Nybegynder
01. marts 2003 - 15:53 #2
Det bedste er at lave et system hvor de 2 knapper ligger lige over hinanden med en sprite kanal imellem, så kan du bruge følgende script altid.

pOffset tager højde for at kanpperne ikke sidder lige ovenpå hinanden eller at de ikke er lige store.

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

property pDefLoc
property pOffset

on beginSprite me
  pDefLoc = sprite(me.spriteNum).loc
  pOffset = sprite(me.spriteNum).loc - sprite(me.spriteNum+1).loc
end

on mouseDown me
  sprite(me.spriteNum).loc = sprite(me.spriteNum).loc +1
  sprite(me.spriteNum+1).loc = sprite(me.spriteNum).loc -pOffset
end

on mouseUp me
  sprite(me.spriteNum).loc = pDefLoc
  sprite(me.spriteNum+1).loc = sprite(me.spriteNum).loc -pOffset
end
------------------ SCRIPT END----------------------------
Avatar billede kanding Nybegynder
01. marts 2003 - 15:54 #3
ups det var et svar det skulle være ;-)
Avatar billede kanding Nybegynder
13. marts 2003 - 14:08 #4
er du tilfreds eller mangler du noget???

kanding
Avatar billede dante2003 Nybegynder
17. april 2003 - 20:09 #5
Kanding du har for meget unødvendig kode :) ellers tak...
Avatar billede kanding Nybegynder
18. april 2003 - 23:15 #6
Det er selvfølgelig dit valg, men unødvendig kode, det tror jeg nu ikke.
1. Min sørger bare for at du ikke skal ændre i scriptet, hvis du ændre billedet der er ovenpå. Billedet kan sidde hvor som helst.
2. det er overkill at tage en value værdi af et tal som der gøres i point(value(sprite(the currentspritenum).locH - 2) value(sprite(2).locv - 2))
3. Jeg er overbevist om at der mangler en mouseUpOutside funktion i begge script. Prøv at trykke ned og fjern musen fra knappen og lav en mouseUp. Gør det et par gange og knappen vil bevæge sig ned ad.
4. I det andet script skal du ind og rette hvis du vælger at skifte sprite kanal da der er hardcoded med sprite 1 & 2.
Jeg behøver ikke at få point'ne, men prøv dette script:
------------------ SCRIPT ----------------------------

property pDefLoc
property pOffset

on beginSprite me
  pDefLoc = sprite(me.spriteNum).loc
  pOffset = sprite(me.spriteNum).loc - sprite(me.spriteNum+1).loc
end

on mouseDown me
  sprite(me.spriteNum).loc = sprite(me.spriteNum).loc +1
  sprite(me.spriteNum+1).loc = sprite(me.spriteNum).loc -pOffset
end

on mouseUp me
  me.releaseMouse()
end

on mouseUpOutside me
  me.releaseMouse()
end

on releaseMouse me
sprite(me.spriteNum).loc = pDefLoc
sprite(me.spriteNum+1).loc = sprite(me.spriteNum).loc -pOffset
end
------------------ SCRIPT END----------------------------
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