Miekka Ja Mies..

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 11:49 am
Location: Kemi

Miekka Ja Mies..

Post 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. :)
Every Legend Has A Start!
cheeshelmet.jr
Member
Posts: 75
Joined: Tue Aug 28, 2007 6:59 am

Re: Miekka Ja Mies..

Post 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
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 11:49 am
Location: Kemi

Re: Miekka Ja Mies..

Post 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. :(
Every Legend Has A Start!
cheeshelmet.jr
Member
Posts: 75
Joined: Tue Aug 28, 2007 6:59 am

Re: Miekka Ja Mies..

Post by cheeshelmet.jr »

Eli sen pitäisi kääntä oman reuna pisteensä mukaan ukon edessä??
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 11:49 am
Location: Kemi

Re: Miekka Ja Mies..

Post 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
Every Legend Has A Start!
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Miekka Ja Mies..

Post 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
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 11:49 am
Location: Kemi

Re: Miekka Ja Mies..

Post 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...
Every Legend Has A Start!
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Miekka Ja Mies..

Post 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
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 11:49 am
Location: Kemi

Re: Miekka Ja Mies..

Post 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. :)
Every Legend Has A Start!
Post Reply