Ajout de plateformes semi-solides
This commit is contained in:
parent
1a435b80fb
commit
2019416980
Binary file not shown.
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
@ -74,8 +74,8 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[12, 6],
|
[-1],
|
||||||
[13, 6],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -113,8 +113,8 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[12, 7],
|
[-1],
|
||||||
[13, 7],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -147,18 +147,18 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[0, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[2, 0],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -186,18 +186,18 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[5, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[3, 1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -223,22 +223,22 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[0, 0],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[5, 2],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[0, 4],
|
||||||
[1, 1],
|
[1, 4],
|
||||||
[1, 1],
|
[1, 4],
|
||||||
[1, 1],
|
[2, 4],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[3, 2],
|
[-1],
|
||||||
[1, 0],
|
[-1],
|
||||||
[2, 0],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -262,22 +262,22 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[0, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[3, 0],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[5, 0],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[1, 1],
|
[-1],
|
||||||
[2, 1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -301,22 +301,22 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[0, 2],
|
|
||||||
[1, 2],
|
|
||||||
[1, 2],
|
|
||||||
[1, 2],
|
|
||||||
[2, 2],
|
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[0, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[1, 2],
|
[-1],
|
||||||
[2, 2],
|
[-1],
|
||||||
|
[-1],
|
||||||
|
[-1],
|
||||||
|
[-1],
|
||||||
|
[-1],
|
||||||
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -342,18 +342,18 @@
|
|||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[0, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[1, 4],
|
||||||
[-1],
|
[2, 4],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
[-1],
|
[-1],
|
||||||
@ -693,9 +693,6 @@
|
|||||||
"gridCellsX": 37,
|
"gridCellsX": 37,
|
||||||
"gridCellsY": 17,
|
"gridCellsY": 17,
|
||||||
"entities": [
|
"entities": [
|
||||||
{"name": "Solid", "id": 12, "_eid": "17026310", "x": 208, "y": 48, "width": 192, "height": 64, "originX": 0, "originY": 0},
|
|
||||||
{"name": "Solid", "id": 13, "_eid": "17026310", "x": 176, "y": 80, "width": 80, "height": 48, "originX": 0, "originY": 0},
|
|
||||||
{"name": "Solid", "id": 14, "_eid": "17026310", "x": 352, "y": 80, "width": 80, "height": 48, "originX": 0, "originY": 0},
|
|
||||||
{"name": "Solid", "id": 15, "_eid": "17026310", "x": 480, "y": 144, "width": 112, "height": 64, "originX": 0, "originY": 0},
|
{"name": "Solid", "id": 15, "_eid": "17026310", "x": 480, "y": 144, "width": 112, "height": 64, "originX": 0, "originY": 0},
|
||||||
{"name": "Solid", "id": 16, "_eid": "17026310", "x": 384, "y": 192, "width": 64, "height": 64, "originX": 0, "originY": 0},
|
{"name": "Solid", "id": 16, "_eid": "17026310", "x": 384, "y": 192, "width": 64, "height": 64, "originX": 0, "originY": 0},
|
||||||
{"name": "Solid", "id": 17, "_eid": "17026310", "x": 448, "y": 192, "width": 64, "height": 48, "originX": 0, "originY": 0},
|
{"name": "Solid", "id": 17, "_eid": "17026310", "x": 448, "y": 192, "width": 64, "height": 48, "originX": 0, "originY": 0},
|
||||||
@ -703,7 +700,9 @@
|
|||||||
{"name": "Solid", "id": 19, "_eid": "17026310", "x": 0, "y": 144, "width": 112, "height": 64, "originX": 0, "originY": 0},
|
{"name": "Solid", "id": 19, "_eid": "17026310", "x": 0, "y": 144, "width": 112, "height": 64, "originX": 0, "originY": 0},
|
||||||
{"name": "Solid", "id": 20, "_eid": "17026310", "x": 144, "y": 192, "width": 80, "height": 64, "originX": 0, "originY": 0},
|
{"name": "Solid", "id": 20, "_eid": "17026310", "x": 144, "y": 192, "width": 80, "height": 64, "originX": 0, "originY": 0},
|
||||||
{"name": "Solid", "id": 21, "_eid": "17026310", "x": 80, "y": 192, "width": 64, "height": 48, "originX": 0, "originY": 0},
|
{"name": "Solid", "id": 21, "_eid": "17026310", "x": 80, "y": 192, "width": 64, "height": 48, "originX": 0, "originY": 0},
|
||||||
{"name": "Solid", "id": 22, "_eid": "17026310", "x": 32, "y": 208, "width": 48, "height": 16, "originX": 0, "originY": 0}
|
{"name": "Solid", "id": 22, "_eid": "17026310", "x": 32, "y": 208, "width": 48, "height": 16, "originX": 0, "originY": 0},
|
||||||
|
{"name": "SemiSolid", "id": 23, "_eid": "59763689", "x": 208, "y": 128, "width": 192, "height": 16, "originX": 0, "originY": 0},
|
||||||
|
{"name": "SemiSolid", "id": 24, "_eid": "59763689", "x": 272, "y": 80, "width": 64, "height": 16, "originX": 0, "originY": 0}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -14,6 +14,7 @@ class Player(BaseObject):
|
|||||||
super().__init__(x,y,game,self.sprite.get_width(),self.sprite.get_height())
|
super().__init__(x,y,game,self.sprite.get_width(),self.sprite.get_height())
|
||||||
|
|
||||||
self.collisionrects = tileset.rects
|
self.collisionrects = tileset.rects
|
||||||
|
self.semirects = tileset.semirects
|
||||||
self.tilew = tileset.solidtilew
|
self.tilew = tileset.solidtilew
|
||||||
self.tileh = tileset.solidtileh
|
self.tileh = tileset.solidtileh
|
||||||
|
|
||||||
@ -37,7 +38,7 @@ class Player(BaseObject):
|
|||||||
self.onground = False
|
self.onground = False
|
||||||
if self.checkcollisions(0,1):
|
if self.checkcollisions(0,1):
|
||||||
self.onground = True
|
self.onground = True
|
||||||
self.vertical=0
|
self.vertical=min(0,self.vertical)
|
||||||
else:
|
else:
|
||||||
self.vertical+=self.gravity*self.game.dt
|
self.vertical+=self.gravity*self.game.dt
|
||||||
self.vertical = min(self.maxgravity,self.vertical)
|
self.vertical = min(self.maxgravity,self.vertical)
|
||||||
@ -114,6 +115,12 @@ class Player(BaseObject):
|
|||||||
if temprect.colliderect(rect):
|
if temprect.colliderect(rect):
|
||||||
result = rect
|
result = rect
|
||||||
break
|
break
|
||||||
|
if not result:
|
||||||
|
for rect in self.semirects:
|
||||||
|
if self.rect.bottom<=rect.top:
|
||||||
|
if temprect.colliderect(rect):
|
||||||
|
result = rect
|
||||||
|
break
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def draw(self):
|
def draw(self):
|
||||||
|
@ -25,6 +25,7 @@ class TilesetRenderer(BaseObject):
|
|||||||
json = level["data"]
|
json = level["data"]
|
||||||
name = level["name"]
|
name = level["name"]
|
||||||
self.rects = []
|
self.rects = []
|
||||||
|
self.semirects = []
|
||||||
self.layers = []
|
self.layers = []
|
||||||
self.spawns = [[self.game.DISPLAY_WIDTH//2,self.game.DISPLAY_HEIGHT//2]] # Valeur par défaut
|
self.spawns = [[self.game.DISPLAY_WIDTH//2,self.game.DISPLAY_HEIGHT//2]] # Valeur par défaut
|
||||||
if "layers" in json.keys() and type(json["layers"]).__name__=="list":
|
if "layers" in json.keys() and type(json["layers"]).__name__=="list":
|
||||||
@ -79,9 +80,10 @@ class TilesetRenderer(BaseObject):
|
|||||||
w = entity["width"]
|
w = entity["width"]
|
||||||
if "height" in entity.keys():
|
if "height" in entity.keys():
|
||||||
h = entity["height"]
|
h = entity["height"]
|
||||||
self.rects.append(self.game.pygame.Rect(x,y,w,h))
|
lists = {"Solid":self.rects,"SemiSolid":self.semirects}
|
||||||
|
lists[entity["name"]].append(self.game.pygame.Rect(x,y,w,h))
|
||||||
except:
|
except:
|
||||||
self.game.log("Erreur",name,"Propriétés invalides")
|
self.game.log("Erreur",name,entity,"Propriétés invalides")
|
||||||
else:
|
else:
|
||||||
self.game.log("Erreur",name,"Il manque les collisions, Entity Layer nommé Solids")
|
self.game.log("Erreur",name,"Il manque les collisions, Entity Layer nommé Solids")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user