apua

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

apua

Post by auttakaas » Sat Sep 22, 2007 3:07 pm

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 » Sat Sep 22, 2007 3:39 pm

Anteeks, meni väärään paikkaan, voisko joku siirtää?

User avatar
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: apua

Post by Harakka » Sat Sep 22, 2007 3:41 pm

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)

User avatar
Bagard
Newcomer
Posts: 46
Joined: Sun Aug 26, 2007 4:56 pm
Location: Finland

Re: apua

Post by Bagard » Sat Sep 22, 2007 3:57 pm

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 » Sat Sep 22, 2007 7:06 pm

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ä » Thu Sep 27, 2007 4:13 pm

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 » Thu Sep 27, 2007 4:23 pm

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