apua

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
auttakaas

apua

Post by auttakaas »

Eli, mulla on sellanen peli missä ajetaan metsäkoneella. Mulla on kaikki liikkuvat osat piirretty mutta ongelma on se, että
miten saisin niin, että jos mulla olis esim koneen runko ja ohjaamo erikseen, niin miten saisin tehtyä niin että runko voi liikkua joka suuntaan, mutta ohjaamo liikkuis rungon mukana ja sitä vois kääntää?
Tässä kuva osista:
[img=http://img230.imageshack.us/img230/7850/motorv8.th.png]
Eli ois tarkotus saada niin että tuo runko missä on pyörät, niin sen mukana liikkuis noi kaikki osat, ja niitä osia vois kääntää mutta ei liikuttaa yksikseen. Neuvokaa!
Kiitos jo etukäteen!
auttakaas

Re: apua

Post by auttakaas »

Anteeks, meni väärään paikkaan, voisko joku siirtää?
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: apua

Post by Harakka »

Liikutettavan pohjaobjektin nimi voi olla vaikka pohja. Loopissa ohjaat ensin pohjaa normaalisti (MoveObject yms.) ja sitten sijoitat pyöriteltävät tavarat sen kohdalle CloneObjectPosition-komennolla ja pyörität niitä vaikka TurnObjectilla.

EDIT: Esimerkki, johon laitoin tosin mukaan myös ampumisen hetken mielijohteesta:

Code: Select all

SCREEN 800,600
Type AMMUS
    Field obj
End Type

vauhti# = 0
kaannos# = 0

pohja = LoadObject("media/car.bmp",90)
ase = LoadObject("media/cow.bmp",90)
tahtain = LoadObject("media/target.bmp")

mAmmus = LoadObject("media/bigbullet.bmp",90)
ShowObject mAmmus,0

Repeat
    //TÄHTÄIN HIIREN KOHDALLE
    PositionObject tahtain,MouseWX(),MouseWY()
    
    //AUTON LIIKUTUS
    MoveObject pohja,vauhti
    TurnObject pohja,kaannos
    vauhti = CurveValue(UpKey()*5-DownKey()*3,vauhti,40)
    kaannos = CurveValue((LeftKey()*2-RightKey()*2)*vauhti/3,kaannos,20)
    
    //ASEEN SIJOITUS JA KÄÄNTÖ
    CloneObjectPosition ase,pohja
    PointObject ase,tahtain

    //AMPUMINEN
    If reload Then reload - 1
    If MouseDown(1) And reload = 0 Then
        uusiammus.AMMUS = New(AMMUS)
        uusiammus\obj   = CloneObject(mAMMUS)
        CloneObjectPosition uusiammus\obj,ase
        CloneObjectOrientation uusiammus\obj,ase
        ObjectOrder ase,1
        reload = 12
    EndIf
    
    //AMMUSTEN LIIKUTUS JA POISTO
    For ia.AMMUS = Each AMMUS
        If Distance(0,0,ObjectX(ia\obj),ObjectY(ia\obj)) < 1000 Then
            MoveObject ia\obj,8
        Else
            DeleteObject ia\obj
            Delete ia
        EndIf
    Next ia
    
    DrawScreen
Forever
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Bagard
Newcomer
Posts: 46
Joined: Sun Aug 26, 2007 4:56 pm
Location: Finland

Re: apua

Post by Bagard »

Nyt on siirretty. Topicin nimi on kyllä surkea ja sääntöjen vastainen, eli jatkossa jotain järkeä niihinkin.
auttakaas

Re: apua

Post by auttakaas »

Tuota en keksinyt sitten millään, että miten saisin tuon tehtyä että esim tuossa tuo puomi tulisi toisen puomin sisästä eli pitenisi?
nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: apua

Post by nassi-setä »

mut miten sais esim. taloon oven oikeesee kohtaa cloneobjectposition:nilla?
kun se länttää oven keskelle taloo?
User avatar
duck
Member
Posts: 80
Joined: Sun Sep 09, 2007 4:41 pm

Re: apua

Post by duck »

nassi-setä wrote:mut miten sais esim. taloon oven oikeesee kohtaa cloneobjectposition:nilla?
kun se länttää oven keskelle taloo?
laitat siihen esimerkiksi:

Code: Select all

cloneobjectposition ovi,talo
moveobject ovi,50,50
eli moveobjectiin laitat sopivan kokoset luvut että ovi menee oikeaan kohtaan. tai on tähän varmasti helpompiaki keinoja, mutta tuossa nyt yks.
Lentäjä-ässä:
lentäjä-ässä
Post Reply