Mapin tarkistus onkelma..

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Mapin tarkistus onkelma..

Post by MaGetzUb » Tue Jan 01, 2008 7:09 pm

Olis sellaane ongelma, et pitäis sivulta kuvatun pelin karttaan saada selville onko objeki liian lähellä reunaa, ettei se putoa. En käytä dataa koska se olisi liian tönkköä. Oisko kellää ehdotuksia? :D Funktiot ovat aina plussaa!

Offtopic: Jouduin korjailemaan teksitä koska siitä en saanut itsekkään aluksi selvää. :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

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

Re: Mapin tarkistus onkelma..

Post by Harakka » Tue Jan 01, 2008 7:17 pm

Saat kentän leveyden tietoon funktiolla ObjectSizeX() ja objektin x-kordinaatin tietoon funktiolla ObjectX(). Kartan vasen laita on kartan x + kartan leveys jaettuna kahdella. Vertaa onko ukon x suurempi kuin kartan vasen laita. Jos se on, ukon x-kordinaatiksi laitetaan kartan vasen laita.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Mapin tarkistus onkelma..

Post by MaGetzUb » Tue Jan 01, 2008 7:25 pm

D'OH! Ei vaan tarkoitin et se vaikka äijä liikkuisi edestakaisin jonkun palkin päällä. Sitäpaitis kartan leveyden saaselville nopeammin omasta mielestäni näin: Mapwidth*tileleveys.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

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

Re: Mapin tarkistus onkelma..

Post by Harakka » Tue Jan 01, 2008 7:29 pm

Aa! :) No siinä tapauksessa ehdotan, että tarkistat mitä hit-kerros sisältää ukon vasemmassa ja oikeassa alakulmassa. Jos vasen alakulma on tyhjä ja oikeassa kulmassa on tavaraa, täytyy vaihtaa sunnaksi oikealle meneminen. Jos oikealla puolella on pudous ja vasemmalla on maata, käännytään vasemmalle. Periaatteessa riittää, jos tarkastat onko jommalla kummalla puolella tyhjää ja jos on, peilataan suunta, mutta tällä systeemillä olen huomannut hahmon jumittuvan helpommin.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Mapin tarkistus onkelma..

Post by MaGetzUb » Tue Jan 01, 2008 7:36 pm

Jop!

Code: Select all

Function TarkistaReuna(obj,suunta)
If suunta=1 Then 
If GetMap(0,ObjectX(obj)+ObjectSizeX(obj),ObjectY(obj)+ObjectSizeY(obj))=0 Then 
Return 1
Else 
Return 0
EndIf 
ElseIf suunta=-1 Then 
If GetMap(0,ObjectX(obj)-ObjectSizeX(obj),ObjectY(obj)+ObjectSizeY(obj))=0 Then 
Return 1
Else 
Return 0
EndIf 
EndIf 
EndFunction 
EDIT:

Noinko? Ei tuntunu toimiva...

Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Mapin tarkistus onkelma..

Post by koodaaja » Tue Jan 01, 2008 9:34 pm

Ei tokikaan toimi. Objektisysteemissähän y kasvaa ylöspäin, joten koodisi testaa onko ukosta oikealle ja ylös mitään. Vaihda siis plussa miinukseksi ja jaa objektin koko sekä x- että y-akselin suhteen kahdella. Lisäksi tuossa on otettava huomioon objektin suunta, eli vasemmalle käveltäessä x:täkin vähennetään.

Ja kyllä ObjectSizeX(kartta) on nopeampi kirjoittaa kuin MapWidth()*tileleveys, ei se mielipidekysymys ole ;D

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Mapin tarkistus onkelma..

Post by MaGetzUb » Tue Jan 01, 2008 11:57 pm

Ja kyllä ObjectSizeX(kartta) on nopeampi kirjoittaa kuin MapWidth()*tileleveys, ei se mielipidekysymys ole ;D
Okei mä luovutan.
Yritin kauan aikaa tulla tänne foorumille, mutta koko aja tuli General error, sitte kun painoin päivitä sitte se rupes toimimaa... Mistköhän johtuu?
Ei tokikaan toimi. Objektisysteemissähän y kasvaa ylöspäin, joten koodisi testaa onko ukosta oikealle ja ylös mitään. Vaihda siis plussa miinukseksi ja jaa objektin koko sekä x- että y-akselin suhteen kahdella. Lisäksi tuossa on otettava huomioon objektin suunta, eli vasemmalle käveltäessä x:täkin vähennetään.
Aha! Mun funkkarit ei yleensä toimi mutta kiitti vinkistä! :D
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

Post Reply