Objektien henk.koht liike jne.
Objektien henk.koht liike jne.
Ongelmani on, että luon nipun objekteja, joiden tulisi jokaisen liikkua itsenäisesti ja törmäykset kenttään tarkistetaan jokainen erikseen.
Törmätessä näkymättömiin objekteihin, tulisi liike olla käänteinen, nyt kaikki kääntyy, kun yksi objekti törmää johonkin.
Objektit luotu ja liike annettu, mutta kaikki liikkuvat jostakin syystä samalla tavalla eli en jotenkin saa annettua objekteille erillisiä omia nopeuksia.
Kuinka kaavaan tulisi sijoittaa moveobject tai vastaava, jotta jokaisella objektilla olisi erillinen liike, ja jonka voi kääntää törmäystarkistus osiossa ?
Törmätessä näkymättömiin objekteihin, tulisi liike olla käänteinen, nyt kaikki kääntyy, kun yksi objekti törmää johonkin.
Objektit luotu ja liike annettu, mutta kaikki liikkuvat jostakin syystä samalla tavalla eli en jotenkin saa annettua objekteille erillisiä omia nopeuksia.
Kuinka kaavaan tulisi sijoittaa moveobject tai vastaava, jotta jokaisella objektilla olisi erillinen liike, ja jonka voi kääntää törmäystarkistus osiossa ?
Re: Objektien henk.koht liike jne.
Pasteapa ensin nykyinen koodi?RaatoX wrote:Ongelmani on, että luon nipun objekteja, joiden tulisi jokaisen liikkua itsenäisesti ja törmäykset kenttään tarkistetaan jokainen erikseen.
Törmätessä näkymättömiin objekteihin, tulisi liike olla käänteinen, nyt kaikki kääntyy, kun yksi objekti törmää johonkin.
Objektit luotu ja liike annettu, mutta kaikki liikkuvat jostakin syystä samalla tavalla eli en jotenkin saa annettua objekteille erillisiä omia nopeuksia.
Kuinka kaavaan tulisi sijoittaa moveobject tai vastaava, jotta jokaisella objektilla olisi erillinen liike, ja jonka voi kääntää törmäystarkistus osiossa ?
Re: Objektien henk.koht liike jne.
korppusininen1=LoadAnimObject("Media\korppusin.png",48,51,0,16) ' LUODAAN OBJEKTI
MaskObject korppusininen1,cbMagenta
ShowObject korppusininen1,OFF
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Type KORPPUSININEN
Field objKS
End Type
If GetMap2(3, x, y) = 60 Then
korppusininen.KORPPUSININEN = New(KORPPUSININEN)
korppusininen\objKS = CloneObject(korppusininen1)
PositionObject korppusininen\objKS, 32*(-.6*MapWidth() + x +7.5) + ObjectX(map), -32*(-.5*MapWidth() + y -19.2) + ObjectY(map)
LoopObject korppusininen\objKS,0,15,.2,ON
SetupCollision korppusininen\objKS,näkymätönkivi\objNK,2,1,2'''''
SetupCollision näkymätönkivi\objNK,korppusininen\objKS,2,1,2'''''
ObjectOrder korppusininen\objKS,1
ks1x=1 ' TÄSSÄ ANNETAAN NOPEUS
EndIf
ShowObject korppusininen1,OFF
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For oks1.KORPPUSININEN = Each KORPPUSININEN
For onk1.NÄKYMÄTÖNKIVI = Each NÄKYMÄTÖNKIVI
If oks1 <> onk1 Then
If ObjectsOverlap(oks1\objKS, onk1\objNK) Then
ks1x=-ks1x 'TÄSSÄ MUUTETAAN KÄÄNTEINEN NOPEUS
End If
End If
MoveObject oks1\objKS,ks1x
Next onk1
Next oks1
MaskObject korppusininen1,cbMagenta
ShowObject korppusininen1,OFF
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Type KORPPUSININEN
Field objKS
End Type
If GetMap2(3, x, y) = 60 Then
korppusininen.KORPPUSININEN = New(KORPPUSININEN)
korppusininen\objKS = CloneObject(korppusininen1)
PositionObject korppusininen\objKS, 32*(-.6*MapWidth() + x +7.5) + ObjectX(map), -32*(-.5*MapWidth() + y -19.2) + ObjectY(map)
LoopObject korppusininen\objKS,0,15,.2,ON
SetupCollision korppusininen\objKS,näkymätönkivi\objNK,2,1,2'''''
SetupCollision näkymätönkivi\objNK,korppusininen\objKS,2,1,2'''''
ObjectOrder korppusininen\objKS,1
ks1x=1 ' TÄSSÄ ANNETAAN NOPEUS
EndIf
ShowObject korppusininen1,OFF
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For oks1.KORPPUSININEN = Each KORPPUSININEN
For onk1.NÄKYMÄTÖNKIVI = Each NÄKYMÄTÖNKIVI
If oks1 <> onk1 Then
If ObjectsOverlap(oks1\objKS, onk1\objNK) Then
ks1x=-ks1x 'TÄSSÄ MUUTETAAN KÄÄNTEINEN NOPEUS
End If
End If
MoveObject oks1\objKS,ks1x
Next onk1
Next oks1
Re: Objektien henk.koht liike jne.
Laita For onk1...–loopin alkuun ks1x = 1RaatoX wrote:Code: Select all
korppusininen1=LoadAnimObject("Media\korppusin.png",48,51,0,16) ' LUODAAN OBJEKTI MaskObject korppusininen1,cbMagenta ShowObject korppusininen1,OFF ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Type KORPPUSININEN Field objKS End Type If GetMap2(3, x, y) = 60 Then korppusininen.KORPPUSININEN = New(KORPPUSININEN) korppusininen\objKS = CloneObject(korppusininen1) PositionObject korppusininen\objKS, 32*(-.6*MapWidth() + x +7.5) + ObjectX(map), -32*(-.5*MapWidth() + y -19.2) + ObjectY(map) LoopObject korppusininen\objKS,0,15,.2,ON SetupCollision korppusininen\objKS,näkymätönkivi\objNK,2,1,2''''' SetupCollision näkymätönkivi\objNK,korppusininen\objKS,2,1,2''''' ObjectOrder korppusininen\objKS,1 ks1x=1 ' TÄSSÄ ANNETAAN NOPEUS EndIf ShowObject korppusininen1,OFF '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' For oks1.KORPPUSININEN = Each KORPPUSININEN For onk1.NÄKYMÄTÖNKIVI = Each NÄKYMÄTÖNKIVI If oks1 <> onk1 Then If ObjectsOverlap(oks1\objKS, onk1\objNK) Then ks1x=-ks1x 'TÄSSÄ MUUTETAAN KÄÄNTEINEN NOPEUS End If End If MoveObject oks1\objKS,ks1x Next onk1 Next oks1
Re: Objektien henk.koht liike jne.
No, ei auta. Kokeilin laittaa kyseisen pätkän eri kohtiin kaavaa ja tulokset olivat seuraavat.
Menee näkymättömienkivien läpi paukkuen tai hidastellen tai toimien kuten ennen eli kaikilla objekteilla sama liikerata .
Jotakin muuta tulisi keksiä .
Menee näkymättömienkivien läpi paukkuen tai hidastellen tai toimien kuten ennen eli kaikilla objekteilla sama liikerata .
Jotakin muuta tulisi keksiä .
Re: Objektien henk.koht liike jne.
Objektit liikkuvat korkeiden tasojen päällä ja reunoissa on näkymättömät kivet, joihin törmätessä objektin tulisi kääntää suuntaa.
Tasot ovat eripituisia, joten olisi kiva jos ne liikkuisivat jokainen omalla tavallaan, ei kytköksissä toisiinsa.
Tasot ovat eripituisia, joten olisi kiva jos ne liikkuisivat jokainen omalla tavallaan, ei kytköksissä toisiinsa.
Re: Objektien henk.koht liike jne.
No kun säädät nopeuden negatiivisesti, se ei automaagisesti palaudu vaan kaikki myöhemmät objektit saavat saman negatiivisen nopeuden.RaatoX wrote:Objektit liikkuvat korkeiden tasojen päällä ja reunoissa on näkymättömät kivet, joihin törmätessä objektin tulisi kääntää suuntaa.
Tasot ovat eripituisia, joten olisi kiva jos ne liikkuisivat jokainen omalla tavallaan, ei kytköksissä toisiinsa. :D
Re: Objektien henk.koht liike jne.
Itse uskon, että virhe tapahtuu objektien luomiskaavassa. Siellä annetaan objektin vauhti, mutta annanko sen kyseisessä kaavassa kaikille erikseen vai yhden yhteisen ? Jos haluan antaa kaikille oman muuttujan vauhdiksi, jota seurataan, niin kuinka se annetaan ?
Re: Objektien henk.koht liike jne.
Aseta tyyppikokoelmaan uusi Field, vaikkapa "nopeus" ja sitten tuolla For-Each loopissa siirrät objekteja niiden omien nopeuksien perusteella (eli tarkistat nopeuden käyttämällä esim. For oks1.KORPPUSININEN = Each KORPPUSININEN loopissa oks1\nopeus muuttujaa).RaatoX wrote:Itse uskon, että virhe tapahtuu objektien luomiskaavassa. Siellä annetaan objektin vauhti, mutta annanko sen kyseisessä kaavassa kaikille erikseen vai yhden yhteisen ? Jos haluan antaa kaikille oman muuttujan vauhdiksi, jota seurataan, niin kuinka se annetaan ?
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Objektien henk.koht liike jne.
Kiitos VesQ, tähän lopputulokseen tulin ajatuksissani myös itse.
Halusin vain varmistuksen tähän, jotten tee turhaa työtä .
Pistän piakkoin ekat screenit projektista, jota olen väsännyt nyt 1/2 vuotta ja uskoisin, että syksyllä valmis .
Ohjelmassa nyt noin 6000 riviä ja laajenee .
Halusin vain varmistuksen tähän, jotten tee turhaa työtä .
Pistän piakkoin ekat screenit projektista, jota olen väsännyt nyt 1/2 vuotta ja uskoisin, että syksyllä valmis .
Ohjelmassa nyt noin 6000 riviä ja laajenee .
Re: Objektien henk.koht liike jne.
Toivottavasti koodi ei ole yhtä purkkaa, että esim. koodin jakaminen eri tiedostoihin onistuu/on tehty?RaatoX wrote:Kiitos VesQ, tähän lopputulokseen tulin ajatuksissani myös itse.
Halusin vain varmistuksen tähän, jotten tee turhaa työtä .
Pistän piakkoin ekat screenit projektista, jota olen väsännyt nyt 1/2 vuotta ja uskoisin, että syksyllä valmis .
Ohjelmassa nyt noin 6000 riviä ja laajenee .
-On selkeästi impulsiivinen koodaaja joka...
Re: Objektien henk.koht liike jne.
Koodin jakaminen on tehty huolella aliohjelmiin ja ohjelmarakenne on suunniteltu erikseen heti alussa omaan pelivihkoon .
HUOM! Luotan perinteiseen suunnitteluun enemmän kuin nykyaikaisiin esim. excel-taulukkoihin .
Perusteellinen rakennesuunnittelu vei n. 2kk ennen koodauksen aloitusta.
Ohjelmassa yhdistellään eri pelityylejä (genreä) ja niiden yhteen saattaminen vei suunnittelusta omanaikansa .
Peli käsittää valmiina n. 30 toimintakenttää/osa-aluetta ja kenttien läpikahlaaminen arviolta kestää n.20-24 tuntia.
Siksi mainitsemasi koodirakenne ja sen jakaminen on tärkeysasteikolla nro 1 .
HUOM! Luotan perinteiseen suunnitteluun enemmän kuin nykyaikaisiin esim. excel-taulukkoihin .
Perusteellinen rakennesuunnittelu vei n. 2kk ennen koodauksen aloitusta.
Ohjelmassa yhdistellään eri pelityylejä (genreä) ja niiden yhteen saattaminen vei suunnittelusta omanaikansa .
Peli käsittää valmiina n. 30 toimintakenttää/osa-aluetta ja kenttien läpikahlaaminen arviolta kestää n.20-24 tuntia.
Siksi mainitsemasi koodirakenne ja sen jakaminen on tärkeysasteikolla nro 1 .