Page 1 of 1

Miekka Ja Mies..

Posted: Wed May 28, 2008 8:32 pm
by Myst!c
Eli, minulla on ongelma saada kaksi objektia toimimaan "yhtenä", eli yritän saada miekan ukon käteen ja pysymään siinä kun liikun, yrittämisestäni huolimatta olen saanut sen tottelemaan mutta kun kävelen niin miekka "bugittaa", "tärisee" oudosti..
Ja kun en liiku ja käännyn, miekka ei käänny vaan kun lähden sen jälkeen liikkeelle, miekka kääntyy nopeasti takaisin Pelaajan kulmaan, koodia:

Code: Select all

ukko=LoadObject("Media/guy1.bmp",360)
ShowObject ukko, OFF 

miekka=LoadObject("Media/sword.bmp",360)
ShowObject miekka, OFF 

Repeat

LeftKey() Then
   TurnObject ukko, 5
EndIf
     
If RightKey() Then 
    TurnObject ukko, -5
EndIf

If UpKey() Then 
    MoveObject ukko, 4 
EndIf    

If DownKey()
   MoveObject ukko, -3
EndIf 

kulma=GetAngle2(ukko,miekka)

RotateObject miekka, kulma

CloneObjectPosition miekka,ukko

MoveObject miekka, 10
TurnObject miekka,280

CloneCameraPosition ukko

DrawScreen

Forever

Ps. Kiitos etukäteen. ;)

EDIT: Tämä kuuluisi ehkä tyhmiin kysymyksiin.. Noh, luotan Dibalon arviointikykyyn. :)

Re: Miekka Ja Mies..

Posted: Wed May 28, 2008 8:40 pm
by cheeshelmet.jr
no tuo kääntyminen tapahtuisi niin että korvaat sen:
kulma=GetAngle2(ukko,miekka)
RotateObject miekka, kulma
tällä :
CLONEOBJECTORIENTATION miekka, ukko
ja tärinän niin että poistat rivit:
MoveObject miekka, 10
TurnObject miekka,280

Re: Miekka Ja Mies..

Posted: Wed May 28, 2008 8:43 pm
by Myst!c
cheeshelmet.jr wrote:no tuo kääntyminen tapahtuisi niin että korvaat sen:
kulma=GetAngle2(ukko,miekka)
RotateObject miekka, kulma
tällä :
CLONEOBJECTORIENTATION miekka, ukko
ja tärinän niin että poistat rivit:
MoveObject miekka, 10
TurnObject miekka,280
Ei. :) Et taida ymmärtää mitä haen takaa, peli on ylhäältäkuvattu RPG, jos teen miten sinä sanot, tapahtuu näin, miekka kulkee miehen mukana ja mies kääntyy aivan normaalisti ja miekka kääntyy oman "keskipisteensä" mukaan, se ei huomioi pelaajan kulmaa ollenkaan vaan kääntyy siis samaan kulmaan kuin mies mutta ei käänny miehen mukana.

EDIT: Kiitos kuitenkin että yritit auttaa, oma vikani kun en selittänyt tarpeeksi hyvin. :(

Re: Miekka Ja Mies..

Posted: Wed May 28, 2008 8:49 pm
by cheeshelmet.jr
Eli sen pitäisi kääntä oman reuna pisteensä mukaan ukon edessä??

Re: Miekka Ja Mies..

Posted: Wed May 28, 2008 8:52 pm
by Myst!c
cheeshelmet.jr wrote:Eli sen pitäisi kääntä oman reuna pisteensä mukaan ukon edessä??
Minun "logiikan" mukaan miekan pitää kääntyä Ukon keskipisteensä mukaan ja keskipisteenhän voi laskea korkeus/2 ja leveys/2, mutta ei tuota kaavaa tarvitse, haen lähinnä vastausta tuohon että miten sen saa kääntymään myös liikkumatta ja miten "bugittamisen" saa lakkaamaan. :3

Re: Miekka Ja Mies..

Posted: Wed May 28, 2008 10:16 pm
by Harakka
Onko siis tarkoitus, että miekka on vain ukon jatkeena? Se onnistuu esimerkiksi näin:

Code: Select all

ukko=LoadObject("Media/guy.bmp",360)
'ShowObject ukko, OFF 

miekka=LoadObject("Media/tatti.bmp",360)
'ShowObject miekka, OFF 

Repeat

if LeftKey() Then
   TurnObject ukko, 5
EndIf
     
If RightKey() Then 
    TurnObject ukko, -5
EndIf

If UpKey() Then 
    MoveObject ukko, 4 
EndIf    

If DownKey()
   MoveObject ukko, -3
EndIf 


CloneObjectPosition miekka,ukko
CloneObjectOrientation miekka,ukko

MoveObject miekka, 10

CloneCameraPosition ukko

DrawScreen

Forever

Re: Miekka Ja Mies..

Posted: Thu May 29, 2008 12:45 pm
by Myst!c
Harakka wrote:Onko siis tarkoitus, että miekka on vain ukon jatkeena? Se onnistuu esimerkiksi näin:

Code: Select all

ukko=LoadObject("Media/guy.bmp",360)
'ShowObject ukko, OFF 

miekka=LoadObject("Media/tatti.bmp",360)
'ShowObject miekka, OFF 

Repeat

if LeftKey() Then
   TurnObject ukko, 5
EndIf
     
If RightKey() Then 
    TurnObject ukko, -5
EndIf

If UpKey() Then 
    MoveObject ukko, 4 
EndIf    

If DownKey()
   MoveObject ukko, -3
EndIf 


CloneObjectPosition miekka,ukko
CloneObjectOrientation miekka,ukko

MoveObject miekka, 10

CloneCameraPosition ukko

DrawScreen

Forever
..... Tuohan on sama kuin cheeshelmet.jr:än juttu.. Selitin jo että jos tuolla lailla laittaa, miekka kääntyy oman "keskipisteensä" mukaan eikä ukon kanssa. :/ Ja sanoin myös että olen jo yrittänyt noin.

Kiitos kuitenkin...

Re: Miekka Ja Mies..

Posted: Thu May 29, 2008 3:07 pm
by Jonez
Tässä kaksi tapaa joilla saada objekti pyörimään tietyn pisteen mukaan. Tapa 1: Lasketaan sinillä ja cosinilla uusi paikka (koodissa objekti ukko).
Tapa 2: Jätetään yksinkertaisesti objektin kuvaan tyhjää tilaa, jolloin objekti on suurempi kuin miltä se näyttää. Näin objekti näyttää pyörivän esim. kahvan kohdalta, vaikka se oikeasti pyörii kuvan keskipisteen ympäri (koodissa cannon).

Code: Select all

ukko = LoadObject( "media\cow.bmp", 72 )
width = ObjectSizeX( ukko ) / 2
height = ObjectSizeY( ukko ) / 2

cannon = LoadObject( "media\cannon.bmp", 72 )
PositionObject cannon, 0, -50

Repeat

    //pyöritetään lehmää
    TurnObject ukko, 3
    kulma# = ObjectAngle( ukko )
    PositionObject ukko, Sin( kulma# + 90 ) * width , -Cos( kulma# + 90 ) * height

    //pyöritetään cannonia
    TurnObject cannon, 3

    //piirretään valkoiset pallukat joiden ympärillä objektit pyörivät.
    DrawGame
    DrawToWorld ON
    Circle ObjectX( ukko ) - 2.5 - Sin( kulma#  + 90 ) * width, ObjectY( ukko ) + 2.5 + Cos( kulma# + 90 ) * height, 5
    Circle ObjectX( cannon ) - 2.5, ObjectY( cannon ) + 2.5, 5
    DrawToWorld OFF

    DrawScreen
Forever

Re: Miekka Ja Mies..

Posted: Thu May 29, 2008 4:02 pm
by Myst!c
Jonez wrote:Tässä kaksi tapaa joilla saada objekti pyörimään tietyn pisteen mukaan. Tapa 1: Lasketaan sinillä ja cosinilla uusi paikka (koodissa objekti ukko).
Tapa 2: Jätetään yksinkertaisesti objektin kuvaan tyhjää tilaa, jolloin objekti on suurempi kuin miltä se näyttää. Näin objekti näyttää pyörivän esim. kahvan kohdalta, vaikka se oikeasti pyörii kuvan keskipisteen ympäri (koodissa cannon).

Code: Select all

ukko = LoadObject( "media\cow.bmp", 72 )
width = ObjectSizeX( ukko ) / 2
height = ObjectSizeY( ukko ) / 2

cannon = LoadObject( "media\cannon.bmp", 72 )
PositionObject cannon, 0, -50

Repeat

    //pyöritetään lehmää
    TurnObject ukko, 3
    kulma# = ObjectAngle( ukko )
    PositionObject ukko, Sin( kulma# + 90 ) * width , -Cos( kulma# + 90 ) * height

    //pyöritetään cannonia
    TurnObject cannon, 3

    //piirretään valkoiset pallukat joiden ympärillä objektit pyörivät.
    DrawGame
    DrawToWorld ON
    Circle ObjectX( ukko ) - 2.5 - Sin( kulma#  + 90 ) * width, ObjectY( ukko ) + 2.5 + Cos( kulma# + 90 ) * height, 5
    Circle ObjectX( cannon ) - 2.5, ObjectY( cannon ) + 2.5, 5
    DrawToWorld OFF

    DrawScreen
Forever
Kiitos!! Vähän soveltamalla sain sen etsimäkseni koodinpätkäksi, kiitos kaikille jotka jaksoivat vastata. :)