draw interior without moving camera and remove excessive tileset

This commit is contained in:
bgiraudr 2021-08-22 02:39:01 +02:00
parent 71c7ce7198
commit 1c827d7b28
10 changed files with 100 additions and 453 deletions

View File

@ -14,16 +14,25 @@ def convert(input, output, params, target):
def convert_map(input, output, params, target):
TILE_AIR = 0
TILE_SOLID = 1
TILE_DOOR = 2
TILE_CHARACTER = 3
TILE_DOOR_IN = 2
TILE_DOOR_OUT = 3
TILE_CHARACTER = 4
TILE_BRIDGE = -1 #only for bridge detection to avoid solid behind
with open(input, "r") as jsonData:
data = json.load(jsonData)
#find the tileset using the location of the input
tileset = open(input.replace(input.split("/")[-1], "tileset.json"), "r")
#find the tileset in use. it's a relative path (like ../tileset.tsx)
nameTileset = data["tilesets"][0]["source"].replace(".tsx","")
#the name of the tileset without the .something
nameTilesetFree = nameTileset.split("/")[-1]
#count the number of "back" (cd ..) to locate the tileset on the computer
nbRetour = nameTileset.count("..")+1
#create the tileset absolute path
tilesetPath = "/".join(input.split("/")[:-nbRetour]) + "/" + nameTileset.split("/")[-1] + ".json"
tileset = open(tilesetPath, "r")
data_tileset = json.load(tileset)
tileset.close()
@ -39,8 +48,10 @@ def convert_map(input, output, params, target):
value = TILE_AIR
elif type == "solid":
value = TILE_SOLID
elif type == "door":
value = TILE_DOOR
elif type == "door_in":
value = TILE_DOOR_IN
elif type == "door_out":
value = TILE_DOOR_OUT
elif type == "character":
value = TILE_CHARACTER
elif type == "bridge":
@ -58,7 +69,7 @@ def convert_map(input, output, params, target):
o = fxconv.ObjectData()
o += fxconv.u32(w) + fxconv.u32(h) + fxconv.u32(nblayer)
o += fxconv.ref("img_tileset")
o += fxconv.ref(f"img_{nameTilesetFree}")
#generation of the collision map (take the maximum of the layer except for bridges)
#bridges are always walkable

View File

@ -1,35 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="12" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="25">
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="12" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="10" nextobjectid="25">
<editorsettings>
<export target="interior_1.json" format="json"/>
</editorsettings>
<tileset firstgid="1" source="../tileset.tsx"/>
<layer id="5" name="1" width="12" height="10">
<data encoding="csv">
285,285,285,285,285,285,285,285,285,286,285,285,
285,286,286,286,286,286,286,286,286,286,285,285,
285,286,285,286,286,286,286,286,286,286,285,285,
285,286,285,286,1,1,285,1,39,1,1,1,
285,286,285,1,36,39,1,1,1,33,1,1,
285,286,285,1,1,35,33,1,1,1,1,1,
285,286,285,286,1,30,1,286,285,286,285,285,
285,286,285,286,285,286,285,286,285,286,285,285,
285,286,285,285,285,286,285,286,285,286,285,285,
285,285,752,285,285,285,285,285,285,286,285,285
2,3,2,1,3,3,2,3,2,1,1,3,
1,6,6,6,1,3,2,3,2,1,2,2,
3,6,6,74,76,1,1,74,76,3,1,1,
1,6,2,103,105,1,1,103,105,1,1,1,
1,6,2,103,105,39,1,103,105,33,1,1,
1,6,1,103,78,75,75,77,105,1,1,1,
2,6,3,132,133,106,107,133,134,1,3,1,
2,3,2,2,1,132,134,3,2,2,1,3,
2,3,2,1,3,2,3,2,2,1,1,3,
1,2,0,1,2,2,2,1,3,3,1,3
</data>
</layer>
<layer id="1" name="2" width="12" height="10">
<data encoding="csv">
224,225,225,225,225,225,225,225,225,226,0,29,
20,21,0,0,0,0,0,0,0,0,0,58,
49,50,0,0,0,0,0,0,0,0,0,0,
248,249,249,249,249,249,249,249,249,249,249,251,
277,0,0,0,635,636,637,638,0,0,0,280,
277,0,0,0,664,665,666,667,0,0,0,280,
277,0,0,0,693,694,695,696,0,0,0,280,
277,0,0,245,722,723,724,725,245,0,0,280,
277,0,0,274,751,752,753,754,274,0,0,280,
277,0,0,303,0,0,0,0,303,0,0,280,
277,0,0,0,0,0,0,0,0,0,0,280,
277,0,0,0,0,0,0,0,0,0,0,280,
306,307,238,308,250,250,250,250,250,250,250,309
</data>
</layer>
<layer id="9" name="3" width="12" height="10">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,24,25,0,0,
0,0,0,0,0,0,0,0,53,54,0,0
0,0,0,0,0,0,0,0,294,294,294,0,
0,0,0,0,0,0,0,0,0,294,294,0,
0,0,0,0,0,0,0,0,0,294,294,0,
0,0,0,0,0,0,0,0,0,0,294,0,
0,0,0,0,0,0,0,29,0,0,294,0,
0,0,0,0,0,0,0,58,0,0,294,0,
0,0,0,0,0,0,0,0,0,0,294,0,
0,0,0,0,0,0,0,0,0,0,294,0,
0,0,0,0,0,0,0,0,0,0,0,0
</data>
</layer>
</map>

View File

@ -1,399 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.2" name="tileset" tilewidth="16" tileheight="16" tilecount="754" columns="29">
<editorsettings>
<export target="tileset.json" format="json"/>
</editorsettings>
<image source="../../tileset.png" width="464" height="416"/>
<tile id="15" type="solid"/>
<tile id="16" type="solid"/>
<tile id="17" type="solid"/>
<tile id="18" type="solid"/>
<tile id="19" type="solid"/>
<tile id="20" type="solid"/>
<tile id="21" type="solid"/>
<tile id="22" type="solid"/>
<tile id="23" type="solid"/>
<tile id="24" type="solid"/>
<tile id="25" type="solid"/>
<tile id="44" type="solid"/>
<tile id="45" type="solid"/>
<tile id="46" type="solid"/>
<tile id="47" type="solid"/>
<tile id="48" type="character"/>
<tile id="49" type="solid"/>
<tile id="52" type="solid"/>
<tile id="53" type="solid"/>
<tile id="54" type="solid"/>
<tile id="56" type="character"/>
<tile id="57" type="character"/>
<tile id="78" type="solid"/>
<tile id="79" type="solid"/>
<tile id="80" type="solid"/>
<tile id="81" type="solid"/>
<tile id="82" type="solid"/>
<tile id="83" type="solid"/>
<tile id="107" type="solid"/>
<tile id="109" type="solid"/>
<tile id="110" type="solid"/>
<tile id="112" type="solid"/>
<tile id="136" type="solid"/>
<tile id="137" type="solid"/>
<tile id="138" type="solid"/>
<tile id="139" type="solid"/>
<tile id="140" type="solid"/>
<tile id="141" type="solid"/>
<tile id="165" type="solid"/>
<tile id="167" type="solid"/>
<tile id="168" type="solid"/>
<tile id="169" type="solid"/>
<tile id="170" type="solid"/>
<tile id="194" type="solid"/>
<tile id="196" type="solid"/>
<tile id="197" type="solid"/>
<tile id="199" type="solid"/>
<tile id="200" type="bridge"/>
<tile id="201" type="bridge"/>
<tile id="202" type="bridge"/>
<tile id="223" type="solid"/>
<tile id="224" type="solid"/>
<tile id="225" type="solid"/>
<tile id="231" type="bridge"/>
<tile id="232" type="solid"/>
<tile id="233" type="solid"/>
<tile id="234" type="solid"/>
<tile id="235" type="solid"/>
<tile id="236" type="solid"/>
<tile id="239" type="solid"/>
<tile id="240" type="solid"/>
<tile id="241" type="solid"/>
<tile id="242" type="solid"/>
<tile id="243" type="solid"/>
<tile id="244" type="solid"/>
<tile id="245" type="solid"/>
<tile id="246" type="solid"/>
<tile id="247" type="solid"/>
<tile id="248" type="solid"/>
<tile id="249" type="solid"/>
<tile id="250" type="solid"/>
<tile id="251" type="solid"/>
<tile id="252" type="solid"/>
<tile id="253" type="solid"/>
<tile id="254" type="solid"/>
<tile id="255" type="bridge"/>
<tile id="256" type="bridge"/>
<tile id="257" type="solid"/>
<tile id="261" type="solid"/>
<tile id="262" type="solid"/>
<tile id="263" type="solid"/>
<tile id="264" type="solid"/>
<tile id="265" type="solid"/>
<tile id="268" type="solid"/>
<tile id="269" type="solid"/>
<tile id="270" type="solid"/>
<tile id="271" type="solid"/>
<tile id="272" type="solid"/>
<tile id="273" type="solid"/>
<tile id="274" type="solid"/>
<tile id="275" type="solid"/>
<tile id="276" type="solid"/>
<tile id="277" type="solid"/>
<tile id="278" type="solid"/>
<tile id="279" type="solid"/>
<tile id="280" type="bridge"/>
<tile id="281" type="bridge"/>
<tile id="282" type="bridge"/>
<tile id="283" type="solid"/>
<tile id="284" type="bridge"/>
<tile id="285" type="bridge"/>
<tile id="286" type="solid"/>
<tile id="290" type="solid"/>
<tile id="291" type="solid"/>
<tile id="292" type="solid"/>
<tile id="297" type="solid"/>
<tile id="298" type="solid"/>
<tile id="299" type="solid"/>
<tile id="302" type="solid"/>
<tile id="303" type="solid"/>
<tile id="304" type="solid"/>
<tile id="305" type="solid"/>
<tile id="308" type="solid"/>
<tile id="309" type="bridge"/>
<tile id="310" type="bridge"/>
<tile id="311" type="bridge"/>
<tile id="312" type="solid"/>
<tile id="313" type="bridge"/>
<tile id="314" type="bridge"/>
<tile id="315" type="solid"/>
<tile id="319" type="solid"/>
<tile id="320" type="solid"/>
<tile id="321" type="solid"/>
<tile id="322" type="solid"/>
<tile id="323" type="solid"/>
<tile id="324" type="solid"/>
<tile id="338" type="solid"/>
<tile id="339" type="solid"/>
<tile id="340" type="solid"/>
<tile id="341" type="solid"/>
<tile id="342" type="bridge"/>
<tile id="343" type="bridge"/>
<tile id="344" type="solid"/>
<tile id="348" type="solid"/>
<tile id="349" type="solid"/>
<tile id="350" type="solid"/>
<tile id="351" type="solid"/>
<tile id="352" type="solid"/>
<tile id="353" type="solid"/>
<tile id="377" type="solid"/>
<tile id="378" type="solid"/>
<tile id="379" type="solid"/>
<tile id="380" type="solid"/>
<tile id="381" type="solid"/>
<tile id="382" type="solid"/>
<tile id="634" type="solid"/>
<tile id="635" type="solid"/>
<tile id="636" type="solid"/>
<tile id="637" type="solid"/>
<tile id="655" type="solid"/>
<tile id="656" type="solid"/>
<tile id="657" type="solid"/>
<tile id="658" type="solid"/>
<tile id="659" type="solid"/>
<tile id="660" type="solid"/>
<tile id="661" type="solid"/>
<tile id="662" type="solid"/>
<tile id="663" type="solid"/>
<tile id="664" type="solid"/>
<tile id="665" type="solid"/>
<tile id="666" type="solid"/>
<tile id="684" type="solid"/>
<tile id="685" type="solid"/>
<tile id="686" type="solid"/>
<tile id="687" type="solid"/>
<tile id="688" type="solid"/>
<tile id="689" type="solid"/>
<tile id="690" type="solid"/>
<tile id="691" type="solid"/>
<tile id="692" type="solid"/>
<tile id="693" type="solid"/>
<tile id="694" type="solid"/>
<tile id="695" type="solid"/>
<tile id="713" type="solid"/>
<tile id="714" type="solid"/>
<tile id="715" type="solid"/>
<tile id="716" type="solid"/>
<tile id="717" type="solid"/>
<tile id="718" type="solid"/>
<tile id="719" type="solid"/>
<tile id="720" type="solid"/>
<tile id="721" type="solid"/>
<tile id="722" type="solid"/>
<tile id="723" type="solid"/>
<tile id="724" type="solid"/>
<tile id="742" type="solid"/>
<tile id="743" type="door"/>
<tile id="744" type="solid"/>
<tile id="745" type="solid"/>
<tile id="746" type="solid"/>
<tile id="747" type="door"/>
<tile id="748" type="solid"/>
<tile id="749" type="solid"/>
<tile id="750" type="solid"/>
<tile id="751" type="door"/>
<tile id="752" type="solid"/>
<tile id="753" type="solid"/>
<wangsets>
<wangset name="Herbe" type="corner" tile="-1">
<wangcolor name="Herbe" color="#ff0000" tile="0" probability="1"/>
<wangcolor name="Passage" color="#00ff00" tile="88" probability="1"/>
<wangcolor name="Terre" color="#0000ff" tile="175" probability="1"/>
<wangcolor name="Pavé" color="#ff7700" tile="-1" probability="1"/>
<wangcolor name="Pavé Sombre" color="#00e9ff" tile="-1" probability="1"/>
<wangcolor name="Sable" color="#ff00d8" tile="-1" probability="1"/>
<wangcolor name="Eau" color="#ffff00" tile="-1" probability="1"/>
<wangcolor name="Pavé2" color="#a000ff" tile="-1" probability="1"/>
<wangcolor name="Pavé3" color="#00ffa1" tile="-1" probability="1"/>
<wangcolor name="Herbe claire" color="#ffa8a8" tile="-1" probability="1"/>
<wangcolor name="Montagne" color="#b4a8ff" tile="-1" probability="1"/>
<wangtile tileid="0" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="1" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="2" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="3" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="4" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="29" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="30" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="31" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="32" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="33" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="34" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="35" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="36" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="37" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="38" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="39" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="58" wangid="0,1,0,2,0,1,0,1"/>
<wangtile tileid="59" wangid="0,1,0,2,0,2,0,1"/>
<wangtile tileid="60" wangid="0,1,0,1,0,2,0,1"/>
<wangtile tileid="61" wangid="0,2,0,2,0,2,0,1"/>
<wangtile tileid="62" wangid="0,1,0,2,0,2,0,2"/>
<wangtile tileid="63" wangid="0,1,0,4,0,1,0,1"/>
<wangtile tileid="64" wangid="0,1,0,4,0,4,0,1"/>
<wangtile tileid="65" wangid="0,1,0,1,0,4,0,1"/>
<wangtile tileid="66" wangid="0,4,0,4,0,4,0,1"/>
<wangtile tileid="67" wangid="0,1,0,4,0,4,0,4"/>
<wangtile tileid="68" wangid="0,1,0,5,0,1,0,1"/>
<wangtile tileid="69" wangid="0,1,0,5,0,5,0,1"/>
<wangtile tileid="70" wangid="0,1,0,1,0,5,0,1"/>
<wangtile tileid="71" wangid="0,5,0,5,0,5,0,1"/>
<wangtile tileid="72" wangid="0,1,0,5,0,5,0,5"/>
<wangtile tileid="73" wangid="0,1,0,9,0,1,0,1"/>
<wangtile tileid="74" wangid="0,1,0,9,0,9,0,1"/>
<wangtile tileid="75" wangid="0,1,0,1,0,9,0,1"/>
<wangtile tileid="76" wangid="0,9,0,9,0,9,0,1"/>
<wangtile tileid="77" wangid="0,1,0,9,0,9,0,9"/>
<wangtile tileid="78" wangid="0,11,0,1,0,11,0,11"/>
<wangtile tileid="79" wangid="0,11,0,1,0,1,0,11"/>
<wangtile tileid="80" wangid="0,11,0,11,0,1,0,11"/>
<wangtile tileid="81" wangid="0,1,0,11,0,1,0,1"/>
<wangtile tileid="82" wangid="0,1,0,11,0,11,0,1"/>
<wangtile tileid="83" wangid="0,1,0,1,0,11,0,1"/>
<wangtile tileid="87" wangid="0,2,0,2,0,1,0,1"/>
<wangtile tileid="88" wangid="0,2,0,2,0,2,0,2"/>
<wangtile tileid="89" wangid="0,1,0,1,0,2,0,2"/>
<wangtile tileid="90" wangid="0,2,0,2,0,1,0,2"/>
<wangtile tileid="91" wangid="0,2,0,1,0,2,0,2"/>
<wangtile tileid="92" wangid="0,4,0,4,0,1,0,1"/>
<wangtile tileid="93" wangid="0,4,0,4,0,4,0,4"/>
<wangtile tileid="94" wangid="0,1,0,1,0,4,0,4"/>
<wangtile tileid="95" wangid="0,4,0,4,0,1,0,4"/>
<wangtile tileid="96" wangid="0,4,0,1,0,4,0,4"/>
<wangtile tileid="97" wangid="0,5,0,5,0,1,0,1"/>
<wangtile tileid="98" wangid="0,5,0,5,0,5,0,5"/>
<wangtile tileid="99" wangid="0,1,0,1,0,5,0,5"/>
<wangtile tileid="100" wangid="0,5,0,5,0,1,0,5"/>
<wangtile tileid="101" wangid="0,5,0,1,0,5,0,5"/>
<wangtile tileid="102" wangid="0,9,0,9,0,1,0,1"/>
<wangtile tileid="103" wangid="0,9,0,9,0,9,0,9"/>
<wangtile tileid="104" wangid="0,1,0,1,0,9,0,9"/>
<wangtile tileid="105" wangid="0,9,0,9,0,1,0,9"/>
<wangtile tileid="106" wangid="0,9,0,1,0,9,0,9"/>
<wangtile tileid="107" wangid="0,1,0,1,0,11,0,11"/>
<wangtile tileid="108" wangid="0,1,0,1,0,1,0,1"/>
<wangtile tileid="109" wangid="0,11,0,11,0,1,0,1"/>
<wangtile tileid="110" wangid="0,11,0,11,0,1,0,1"/>
<wangtile tileid="112" wangid="0,1,0,1,0,11,0,11"/>
<wangtile tileid="116" wangid="0,2,0,1,0,1,0,1"/>
<wangtile tileid="117" wangid="0,2,0,1,0,1,0,2"/>
<wangtile tileid="118" wangid="0,1,0,1,0,1,0,2"/>
<wangtile tileid="119" wangid="0,2,0,2,0,2,0,2"/>
<wangtile tileid="120" wangid="0,2,0,2,0,2,0,2"/>
<wangtile tileid="121" wangid="0,4,0,1,0,1,0,1"/>
<wangtile tileid="122" wangid="0,4,0,1,0,1,0,4"/>
<wangtile tileid="123" wangid="0,1,0,1,0,1,0,4"/>
<wangtile tileid="124" wangid="0,4,0,4,0,4,0,4"/>
<wangtile tileid="125" wangid="0,4,0,4,0,4,0,4"/>
<wangtile tileid="126" wangid="0,5,0,1,0,1,0,1"/>
<wangtile tileid="127" wangid="0,5,0,1,0,1,0,5"/>
<wangtile tileid="128" wangid="0,1,0,1,0,1,0,5"/>
<wangtile tileid="129" wangid="0,5,0,5,0,5,0,5"/>
<wangtile tileid="130" wangid="0,5,0,5,0,5,0,5"/>
<wangtile tileid="131" wangid="0,9,0,1,0,1,0,1"/>
<wangtile tileid="132" wangid="0,9,0,1,0,1,0,9"/>
<wangtile tileid="133" wangid="0,1,0,1,0,1,0,9"/>
<wangtile tileid="134" wangid="0,9,0,9,0,9,0,9"/>
<wangtile tileid="135" wangid="0,9,0,9,0,9,0,9"/>
<wangtile tileid="136" wangid="0,1,0,11,0,11,0,11"/>
<wangtile tileid="137" wangid="0,1,0,11,0,11,0,1"/>
<wangtile tileid="138" wangid="0,11,0,11,0,11,0,1"/>
<wangtile tileid="139" wangid="0,11,0,1,0,1,0,1"/>
<wangtile tileid="140" wangid="0,11,0,1,0,1,0,11"/>
<wangtile tileid="141" wangid="0,1,0,1,0,1,0,11"/>
<wangtile tileid="145" wangid="0,1,0,3,0,1,0,1"/>
<wangtile tileid="146" wangid="0,1,0,3,0,3,0,1"/>
<wangtile tileid="147" wangid="0,1,0,1,0,3,0,1"/>
<wangtile tileid="148" wangid="0,3,0,3,0,3,0,1"/>
<wangtile tileid="149" wangid="0,1,0,3,0,3,0,3"/>
<wangtile tileid="150" wangid="0,1,0,10,0,1,0,1"/>
<wangtile tileid="151" wangid="0,1,0,10,0,10,0,1"/>
<wangtile tileid="152" wangid="0,1,0,1,0,10,0,1"/>
<wangtile tileid="153" wangid="0,10,0,10,0,10,0,1"/>
<wangtile tileid="154" wangid="0,1,0,10,0,10,0,10"/>
<wangtile tileid="155" wangid="0,1,0,6,0,1,0,1"/>
<wangtile tileid="156" wangid="0,1,0,6,0,6,0,1"/>
<wangtile tileid="157" wangid="0,1,0,1,0,6,0,1"/>
<wangtile tileid="158" wangid="0,6,0,6,0,6,0,1"/>
<wangtile tileid="159" wangid="0,1,0,6,0,6,0,6"/>
<wangtile tileid="160" wangid="0,1,0,8,0,1,0,1"/>
<wangtile tileid="161" wangid="0,1,0,8,0,8,0,1"/>
<wangtile tileid="162" wangid="0,1,0,1,0,8,0,1"/>
<wangtile tileid="163" wangid="0,8,0,8,0,8,0,1"/>
<wangtile tileid="164" wangid="0,1,0,8,0,8,0,8"/>
<wangtile tileid="174" wangid="0,3,0,3,0,1,0,1"/>
<wangtile tileid="175" wangid="0,3,0,3,0,3,0,3"/>
<wangtile tileid="176" wangid="0,1,0,1,0,3,0,3"/>
<wangtile tileid="177" wangid="0,3,0,3,0,1,0,3"/>
<wangtile tileid="178" wangid="0,3,0,1,0,3,0,3"/>
<wangtile tileid="179" wangid="0,10,0,10,0,1,0,1"/>
<wangtile tileid="180" wangid="0,10,0,10,0,10,0,10"/>
<wangtile tileid="181" wangid="0,1,0,1,0,10,0,10"/>
<wangtile tileid="182" wangid="0,10,0,10,0,1,0,10"/>
<wangtile tileid="183" wangid="0,10,0,1,0,10,0,10"/>
<wangtile tileid="184" wangid="0,6,0,6,0,1,0,1"/>
<wangtile tileid="185" wangid="0,6,0,6,0,6,0,6"/>
<wangtile tileid="186" wangid="0,1,0,1,0,6,0,6"/>
<wangtile tileid="187" wangid="0,6,0,6,0,1,0,6"/>
<wangtile tileid="188" wangid="0,6,0,1,0,6,0,6"/>
<wangtile tileid="189" wangid="0,8,0,8,0,1,0,1"/>
<wangtile tileid="190" wangid="0,8,0,8,0,8,0,8"/>
<wangtile tileid="191" wangid="0,1,0,1,0,8,0,8"/>
<wangtile tileid="192" wangid="0,8,0,8,0,1,0,8"/>
<wangtile tileid="193" wangid="0,8,0,1,0,8,0,8"/>
<wangtile tileid="203" wangid="0,3,0,1,0,1,0,1"/>
<wangtile tileid="204" wangid="0,3,0,1,0,1,0,3"/>
<wangtile tileid="205" wangid="0,1,0,1,0,1,0,3"/>
<wangtile tileid="206" wangid="0,3,0,3,0,3,0,3"/>
<wangtile tileid="207" wangid="0,3,0,3,0,3,0,3"/>
<wangtile tileid="208" wangid="0,10,0,1,0,1,0,1"/>
<wangtile tileid="209" wangid="0,10,0,1,0,1,0,10"/>
<wangtile tileid="210" wangid="0,1,0,1,0,1,0,10"/>
<wangtile tileid="211" wangid="0,10,0,10,0,10,0,10"/>
<wangtile tileid="212" wangid="0,10,0,10,0,10,0,10"/>
<wangtile tileid="213" wangid="0,6,0,1,0,1,0,1"/>
<wangtile tileid="214" wangid="0,6,0,1,0,1,0,6"/>
<wangtile tileid="215" wangid="0,1,0,1,0,1,0,6"/>
<wangtile tileid="216" wangid="0,6,0,6,0,6,0,6"/>
<wangtile tileid="217" wangid="0,6,0,6,0,6,0,6"/>
<wangtile tileid="218" wangid="0,8,0,1,0,1,0,1"/>
<wangtile tileid="219" wangid="0,8,0,1,0,1,0,8"/>
<wangtile tileid="220" wangid="0,1,0,1,0,1,0,8"/>
<wangtile tileid="221" wangid="0,8,0,8,0,8,0,8"/>
<wangtile tileid="222" wangid="0,8,0,8,0,8,0,8"/>
<wangtile tileid="232" wangid="0,6,0,7,0,6,0,6"/>
<wangtile tileid="233" wangid="0,6,0,7,0,7,0,6"/>
<wangtile tileid="234" wangid="0,6,0,6,0,7,0,6"/>
<wangtile tileid="235" wangid="0,7,0,7,0,7,0,6"/>
<wangtile tileid="236" wangid="0,6,0,7,0,7,0,7"/>
<wangtile tileid="239" wangid="0,1,0,7,0,1,0,1"/>
<wangtile tileid="240" wangid="0,1,0,7,0,7,0,1"/>
<wangtile tileid="241" wangid="0,1,0,1,0,7,0,1"/>
<wangtile tileid="242" wangid="0,7,0,7,0,7,0,1"/>
<wangtile tileid="243" wangid="0,1,0,7,0,7,0,7"/>
<wangtile tileid="261" wangid="0,7,0,7,0,6,0,6"/>
<wangtile tileid="262" wangid="0,7,0,7,0,7,0,7"/>
<wangtile tileid="263" wangid="0,6,0,6,0,7,0,7"/>
<wangtile tileid="264" wangid="0,7,0,7,0,6,0,7"/>
<wangtile tileid="265" wangid="0,7,0,6,0,7,0,7"/>
<wangtile tileid="268" wangid="0,7,0,7,0,1,0,1"/>
<wangtile tileid="269" wangid="0,7,0,7,0,7,0,7"/>
<wangtile tileid="270" wangid="0,1,0,1,0,7,0,7"/>
<wangtile tileid="271" wangid="0,7,0,7,0,1,0,7"/>
<wangtile tileid="272" wangid="0,7,0,1,0,7,0,7"/>
<wangtile tileid="290" wangid="0,7,0,6,0,6,0,6"/>
<wangtile tileid="291" wangid="0,7,0,6,0,6,0,7"/>
<wangtile tileid="292" wangid="0,6,0,6,0,6,0,7"/>
<wangtile tileid="297" wangid="0,7,0,1,0,1,0,1"/>
<wangtile tileid="298" wangid="0,7,0,1,0,1,0,7"/>
<wangtile tileid="299" wangid="0,1,0,1,0,1,0,7"/>
<wangtile tileid="300" wangid="0,7,0,7,0,7,0,7"/>
</wangset>
</wangsets>
</tileset>

View File

@ -63,6 +63,7 @@
<tile id="234" type="solid"/>
<tile id="235" type="solid"/>
<tile id="236" type="solid"/>
<tile id="237" type="door_out"/>
<tile id="239" type="solid"/>
<tile id="240" type="solid"/>
<tile id="241" type="solid"/>
@ -190,15 +191,15 @@
<tile id="723" type="solid"/>
<tile id="724" type="solid"/>
<tile id="742" type="solid"/>
<tile id="743" type="door"/>
<tile id="743" type="door_in"/>
<tile id="744" type="solid"/>
<tile id="745" type="solid"/>
<tile id="746" type="solid"/>
<tile id="747" type="door"/>
<tile id="747" type="door_in"/>
<tile id="748" type="solid"/>
<tile id="749" type="solid"/>
<tile id="750" type="solid"/>
<tile id="751" type="door"/>
<tile id="751" type="door_in"/>
<tile id="752" type="solid"/>
<tile id="753" type="solid"/>
<wangsets>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -1,8 +1,4 @@
/*the x radius the player is able to see*/
#define PLAYER_VIEW_X 13
/*the y radius the player is able to see*/
#define PLAYER_VIEW_Y 8
/*the width of the tileset*/
#define TILESET_WIDTH 29
/*the size of one tile*/
#define TILE_SIZE 16

View File

@ -2,6 +2,7 @@
#include <gint/display.h>
#include "engine.h"
#include <stdbool.h>
struct Map {
/*width, height and the number of layer of the map (max 2)*/
@ -17,8 +18,9 @@ struct Map {
enum map_state {
TILE_AIR = 0,
TILE_SOLID = 1,
TILE_DOOR = 2,
TILE_CHARACTER = 3,
TILE_DOOR_IN = 2,
TILE_DOOR_OUT = 3,
TILE_CHARACTER = 4,
};
/*check if a tile is walkable*/
@ -26,4 +28,6 @@ int map_walkable(struct Map const *map, int x, int y);
/*get the tile under the player*/
int map_get_player_tile(struct Game const *game);
void generate_interior_map(struct Game *game);
void generate_interior_map(struct Game *game);
bool is_map_larger(struct Map *map);

View File

@ -41,9 +41,15 @@ void engine_draw_map(struct Game const *game) {
unsigned int tile_y = TILE_SIZE * (tile_id / TILESET_WIDTH);
//provisoire le temps de trouver une manière propre
dsubimage(x * TILE_SIZE - x_offset%TILE_SIZE - game->player->anim.dx * 3,
y * TILE_SIZE - y_offset%TILE_SIZE - game->player->anim.dy * 3, game->map->tileset,
tile_x, tile_y, TILE_SIZE, TILE_SIZE, DIMAGE_NONE);
if(is_map_larger(game->map)) {
dsubimage(x * TILE_SIZE - x_offset%TILE_SIZE - game->player->anim.dx * 3,
y * TILE_SIZE - y_offset%TILE_SIZE - game->player->anim.dy * 3, game->map->tileset,
tile_x, tile_y, TILE_SIZE, TILE_SIZE, DIMAGE_NONE);
} else {
dsubimage(x * TILE_SIZE - x_offset%TILE_SIZE,
y * TILE_SIZE - y_offset%TILE_SIZE, game->map->tileset,
tile_x, tile_y, TILE_SIZE, TILE_SIZE, DIMAGE_NONE);
}
}
}
}
@ -53,14 +59,19 @@ void engine_draw_map(struct Game const *game) {
/*draw the player*/
void engine_draw_player(struct Game const *game) {
if(game->map->w > DWIDTH / TILE_SIZE + 1 &&
game->map->h > DHEIGHT / TILE_SIZE + 1) {
dframe(game->player->show_x * 16, game->player->show_y * 16 - 5, game->player->anim.img); //draw the player 5 pixel up
if(is_map_larger(game->map)) {
dframe(game->player->show_x * TILE_SIZE,
game->player->show_y * TILE_SIZE - 5,
game->player->anim.img); //draw the player 5 pixel up
} else {
int offset_map_x = (DWIDTH / TILE_SIZE - game->map->w + 1)/2;
int offset_map_y = (DHEIGHT / TILE_SIZE - game->map->h + 1)/2;
dframe((game->player->x + offset_map_x) * 16,
(game->player->y + offset_map_y) * 16 - 5, game->player->anim.img); //draw the player 5 pixel up
const int offset_map_x = (DWIDTH / TILE_SIZE - game->map->w + 1)/2;
const int offset_map_y = (DHEIGHT / TILE_SIZE - game->map->h + 1)/2;
dframe(
(game->player->x + offset_map_x) * TILE_SIZE + game->player->anim.dx*3,
(game->player->y + offset_map_y) * TILE_SIZE - 5 + game->player->anim.dy*3,
game->player->anim.img); //draw the player 5 pixel up
}
dprint(1,1,C_BLACK,"%d:%d",game->player->x, game->player->y);
}
@ -77,8 +88,7 @@ int engine_move(struct Game *game, int direction) {
game->player->x += dx;
game->player->y += dy;
if(game->map->w > DWIDTH / TILE_SIZE + 1 &&
game->map->h > DHEIGHT / TILE_SIZE + 1) {
if(is_map_larger(game->map)) {
game->camera->x += dx*16;
game->camera->y += dy*16;
}
@ -123,10 +133,11 @@ void engine_action(struct Game const *game, int action) {
/*check the current position of the player. To perform action depends of his location*/
void engine_check_position(struct Game *game) {
int player_curr_tile = map_get_player_tile(game);
if(player_curr_tile == TILE_DOOR) {
if(player_curr_tile == TILE_DOOR_IN) {
engine_set_background(game, C_BLACK);
generate_interior_map(game);
} else {
}
if(player_curr_tile == TILE_DOOR_OUT) {
engine_set_background(game, C_WHITE);
}
}

View File

@ -28,8 +28,8 @@ int main(void) {
struct Player player = {
.x = 32,
.y = 30,
.x_mid = 7,
.y_mid = 2,
.x_mid = 6,
.y_mid = 1,
.show_x = 12,
.show_y = 7,
.direction = DIR_DOWN,

View File

@ -24,4 +24,13 @@ void generate_interior_map(struct Game *game) {
set_player_xy(game->player, 3,3);
game->camera->x = in_1.w/2 * TILE_SIZE + game->player->x_mid;
game->camera->y = in_1.h/2 * TILE_SIZE + game->player->y_mid;
}
/*return true if the map is larger than the screen. false otherwise*/
bool is_map_larger(struct Map *map) {
if(map->w > DWIDTH / TILE_SIZE + 1 && map->h > DHEIGHT / TILE_SIZE + 1) {
return true;
} else {
return false;
}
}