Viltzu wrote:rami123 wrote:miten tehdään semmonen ruutu liikkuminen? esimerkkiä?
Jos ymmärsin oikein niin tarkoitat että liikkuu ruudulta toiselle? Eikä niin että voisi mennä ruutujen väliin
Yksinkertaisestihan sen voisi tehdä niin että ei liikuteta kohdetta pikseli pikseliltä vaan hypätään yli
Esim. "X+50" ja "Y+50"
Jolloin yhden ruudun koko pitäisi olla 50x50 pikseliä.
Mutta silloinhan vain kohde sioitettaisiin 50 pikselin päähän omasta siainnistansa?
NextX = (MousewX()/32*32) <- tuolla tavalla voidaan tehdä ihan ruudutkin, ja siten objekti voidaan liikuttaa niitä kohti...
Koodan esimerkin niin tajuatte..
EDIT:Tässä nyt jonkimmoone:
Code: Select all
Guy = LoadObject("Media\Guy.Bmp",72)
PositionObject Guy,-200+16,150-16
Repeat
'Lasketaan hiiren siainnit ruutuina
bwx = (MouseWX()-16)/32*32
bwy = (MouseWY()+16)/32*32
'Piirretään maailmaan kaikki tarpeellinen
DrawToWorld ON
'Hiiri
Color cbgreen
Box bwx,bwy,32,32,0
'Piirretään kohdepaikan siainti
If Choosed Then
Color cbred
Box targetx-16+1,targety+16-1,30,30,0
EndIf
DrawToWorld OFF
Color cbcyan
Text 0,0,"Valitse paikka hiirellä"
'Paikan valinta
If MouseHit(1) Then
choosed = 1 'Aloitetaan ukon liikuttaminen
targetx = bwx+16 '"keskitetään" laatikon siainnit
targety = bwy-16
EndIf
'Jos ukon siainnit täsmäävät paikan kanssa niin lopetetaan liikuttaminen
If Distance(ObjectX(guy),ObjectY(guy),targetx+16,targety-16)<8 Then
choosed = 0
EndIf
'Jos paikka on valittu niin liikutetaan ukkoa.
If choosed Then
RotateObject guy,-GetAngle(ObjectX(guy),ObjectY(guy),targetx,targety)
MoveObject guy,2
EndIf
DrawScreen
Forever
[/edit]