Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kentän luominen Tiled-editorilla, part 2 #38

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

xNPx3
Copy link

@xNPx3 xNPx3 commented Nov 12, 2023

Noniin, terve taas. Päätin palata asian äärelle nyt, kun lukioelämä rauhoittui yo-kirjoitusten jälkeen.
Viime PR:n #29 ehdotuksia on hyödynnetty ja nyt pitäisi olla kaikki kunnossa. Muutama TODO-kohta löytyy vielä koodista, mutta ne eivät ole peruskäytössä välttämättömiä.

Tein Content.cs-tiedostoon LoadText-funktion, joka lukee tiedoston sisällön Contentista. En tiedä oliko tämä juuri sellainen ratkaisu jota haettiin, mutta toimi ainakin Windowsilla ja Androidilla testatessa.

Lisäksi tein repon esimerkkipelille, missä TiledMappia on sovellettu käytännössä.

(näemmä korjasin myös erään typon jossain vanhassa commitissa :D)

Otan mielelläni palautetta vastaan :)

- Samuel

Jypeli/Game/Time.cs Outdated Show resolved Hide resolved
@roeyskoe
Copy link
Member

Kiitos, mahtavaa.
Jätin pari kommenttia noista muista lisäyksistä. Katson tuota itse Tiled latauskoodia tarkemmin parin päivän sisällä kun minulla on paremmin aikaa.

Jypeli/Levels/TiledMap.cs Outdated Show resolved Hide resolved
@roeyskoe
Copy link
Member

Testailin tuolla sinun esimerkkiprojektilla ja hyvin vaikuttaisi toimivan.
Onko muuten joku syy miksi tässä käytit Newtonsoft.Json, etkä vakiokirjastoista nykyisin löytyvää System.Text.Jsonia?

@xNPx3
Copy link
Author

xNPx3 commented Jan 5, 2024

Jees, siistin vähäsen koodia ja vaihdoin tuohon System.Text.Jsoniin. Newtonsoft oli vaan ennestään tuttu kirjasto :D

@ajlakanen
Copy link
Contributor

ajlakanen commented Jun 25, 2024

@xNPx3 Ehtisitkö kirjoittaa tähän myös lyhyen dokumentaation, miten tuota käytetään?

@xNPx3
Copy link
Author

xNPx3 commented Jul 7, 2024

@xNPx3 Ehtisitkö kirjoittaa tähän myös lyhyen dokumentaation, miten tuota käytetään?

Eli perusidea oli se, että pystyisi hyödyntämään Tiled-editorilla tehtyjä karttoja Jypeli-kenttien pohjana, vähän samaan tapaan miten nykyinen TileMap toimii.

Uuden kentän voi tehdä luomalla uuden TiledMap-instanssin ja kertomalla sille Content-kansiossa olevien olennaisten karttatiedostojen nimet:
TiledMap map = new TiledMap("kartta.tmj", "tileset.tsj");

Kartan voi määrätä kutsumaan omaa funktiota tiettyjen ruutujen kohdalla:
map.SetOverride(123, ABCD);

SetOverride-metodi toimii melkein kuten TileMapin SetTileMethod, parametreiksi annetaan tietyn tilesetin ruudun ID, sekä void ABCD(Vector position, double width, double height, Image tileImage) -muotoa oleva funktio.

Lopulta kutsumalla kartan Execute-metodia kartta luodaan peliin.
map.Execute();

Tiledin kerroksille voi asettaa omia ominaisuuksia ja koodi pyrkii asettamaan samat ominaisuudet myös Jypeliin luotaville ruuduille; koko kerrokselle hyödyllisiä mm. CollisionIgnoreGroup tai MakeOneWay.
bjWP6oG

Tässä muutaman kuukauden takainen esimerkkiprojekti: https://github.com/xNPx3/TiledMap-Jypeli

Seuraavia kehityskohteita voisi olla esim. kerrosten parempi hallinta. Jos Tiledissä on enemmän kuin 6 kerrosta, se saattaa aiheuttaa ongelmia Jypeliin tuotaessa.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants