Merge remote-tracking branch 'origin/passingEvents' into passingEvents
Before Width: | Height: | Size: 24 KiB |
BIN
data/images/entities/berry.png
Normal file
After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 3.9 KiB |
BIN
data/images/entities/bush.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 64 KiB |
BIN
data/images/entities/cranberry.png
Normal file
After Width: | Height: | Size: 115 KiB |
BIN
data/images/entities/mushroom.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 17 KiB |
BIN
data/images/entities/player.png
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.9 KiB |
BIN
data/images/entities/rabbit.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 78 KiB |
BIN
data/images/entities/rock.png
Normal file
After Width: | Height: | Size: 608 KiB |
Before Width: | Height: | Size: 4.3 KiB |
BIN
data/images/terrain/water.png
Normal file
After Width: | Height: | Size: 61 KiB |
@ -18,7 +18,7 @@
|
|||||||
"name" : "cranberry",
|
"name" : "cranberry",
|
||||||
"position" : {
|
"position" : {
|
||||||
"x": 7,
|
"x": 7,
|
||||||
"y": 1
|
"y": 3
|
||||||
},
|
},
|
||||||
"isPickupable" : true,
|
"isPickupable" : true,
|
||||||
"effect" : {
|
"effect" : {
|
||||||
@ -56,8 +56,23 @@
|
|||||||
"name" : "rock",
|
"name" : "rock",
|
||||||
"position" : {
|
"position" : {
|
||||||
"x": 13,
|
"x": 13,
|
||||||
"y": 1
|
"y": 2
|
||||||
},
|
},
|
||||||
"isPickupable" : false
|
"isPickupable" : false
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"name" : "mushroom",
|
||||||
|
"position" : {
|
||||||
|
"x": 14,
|
||||||
|
"y": 3
|
||||||
|
},
|
||||||
|
"isPickupable": true,
|
||||||
|
"effect" : {
|
||||||
|
"hp": -50,
|
||||||
|
"stamina": 0,
|
||||||
|
"thirst": 0,
|
||||||
|
"hunger": 25
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -9,7 +9,7 @@ class Player(Entity):
|
|||||||
statistics: Statistics
|
statistics: Statistics
|
||||||
|
|
||||||
def __init__(self, spawnpoint, size):
|
def __init__(self, spawnpoint, size):
|
||||||
super().__init__("player.jpg", size, (spawnpoint[0] * size, spawnpoint[1] * size))
|
super().__init__("player.png", size, (spawnpoint[0] * size, spawnpoint[1] * size))
|
||||||
# Where the player is facing, 0 - north, 1
|
# Where the player is facing, 0 - north, 1
|
||||||
self.rotation = Rotations.NORTH
|
self.rotation = Rotations.NORTH
|
||||||
self.statistics = Statistics(100, 0, 0, 100)
|
self.statistics = Statistics(100, 0, 0, 100)
|
||||||
@ -28,9 +28,14 @@ class Player(Entity):
|
|||||||
|
|
||||||
def getFacingCoord(self):
|
def getFacingCoord(self):
|
||||||
if self.rotation == Rotations.NORTH:
|
if self.rotation == Rotations.NORTH:
|
||||||
return (0, -1)
|
return self.rect.x, self.rect.y - (self.rect.h)
|
||||||
elif self.rotation == Rotations.SOUTH:
|
elif self.rotation == Rotations.SOUTH:
|
||||||
pass
|
return self.rect.x, self.rect.y + (self.rect.h)
|
||||||
|
elif self.rotation == Rotations.EAST:
|
||||||
|
return self.rect.x + (self.rect.h), self.rect.y
|
||||||
|
elif self.rotation == Rotations.WEST:
|
||||||
|
return self.rect.x - (self.rect.h), self.rect.y
|
||||||
|
|
||||||
# Returns given statistic
|
# Returns given statistic
|
||||||
def getStatistic(self, stat):
|
def getStatistic(self, stat):
|
||||||
if stat.value == StatisticNames.HP:
|
if stat.value == StatisticNames.HP:
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
|
from src.entities.Pickupable import Pickupable
|
||||||
from src.entities.Player import Rotations
|
from src.entities.Player import Rotations
|
||||||
|
|
||||||
# Player can move every given milliseconds
|
# Player can move every given milliseconds
|
||||||
@ -38,7 +39,11 @@ class EventManager:
|
|||||||
def handlePlayerControls(self, keys):
|
def handlePlayerControls(self, keys):
|
||||||
# Key names are temporary
|
# Key names are temporary
|
||||||
# TODO: Load key bindings from JSON
|
# TODO: Load key bindings from JSON
|
||||||
|
if keys[pygame.K_SPACE]:
|
||||||
|
object = self.game.map.getEntityOnCoord(self.player.getFacingCoord())
|
||||||
|
if type(object) is Pickupable:
|
||||||
|
object.on_pickup(self.player)
|
||||||
|
self.game.map.removeSpriteFromMap(object)
|
||||||
if keys[pygame.K_w]:
|
if keys[pygame.K_w]:
|
||||||
self.player.rotate(Rotations.NORTH)
|
self.player.rotate(Rotations.NORTH)
|
||||||
if not self.game.map.collision(self.player.rect.x, self.player.rect.y - self.player.rect.w):
|
if not self.game.map.collision(self.player.rect.x, self.player.rect.y - self.player.rect.w):
|
||||||
|
@ -42,7 +42,7 @@ class Map:
|
|||||||
for entity in entityListJson:
|
for entity in entityListJson:
|
||||||
try:
|
try:
|
||||||
if entity["isPickupable"]:
|
if entity["isPickupable"]:
|
||||||
actualEntities.append(Pickupable(entity["name"] + ".jpg",
|
actualEntities.append(Pickupable(entity["name"] + ".png",
|
||||||
self.tileSize,
|
self.tileSize,
|
||||||
(entity["position"]["x"] * self.tileSize, entity["position"]["y"] * self.tileSize),
|
(entity["position"]["x"] * self.tileSize, entity["position"]["y"] * self.tileSize),
|
||||||
Statistics(entity["effect"]["hp"],
|
Statistics(entity["effect"]["hp"],
|
||||||
@ -50,7 +50,7 @@ class Map:
|
|||||||
entity["effect"]["thirst"],
|
entity["effect"]["thirst"],
|
||||||
entity["effect"]["stamina"])))
|
entity["effect"]["stamina"])))
|
||||||
else:
|
else:
|
||||||
actualEntities.append(Entity(entity["name"] + ".jpg",
|
actualEntities.append(Entity(entity["name"] + ".png",
|
||||||
self.tileSize,
|
self.tileSize,
|
||||||
(entity["position"]["x"] * self.tileSize, entity["position"]["y"] * self.tileSize)))
|
(entity["position"]["x"] * self.tileSize, entity["position"]["y"] * self.tileSize)))
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@ -67,7 +67,7 @@ class Map:
|
|||||||
elif tile == '.':
|
elif tile == '.':
|
||||||
self.screen.draw(TerrainTile(col, row, 'grass.png', self.tileSize), Locations.MAP, 0, 0)
|
self.screen.draw(TerrainTile(col, row, 'grass.png', self.tileSize), Locations.MAP, 0, 0)
|
||||||
elif tile == 'x':
|
elif tile == 'x':
|
||||||
object = TerrainTile(col, row, 'water.jpg', self.tileSize)
|
object = TerrainTile(col, row, 'water.png', self.tileSize)
|
||||||
self.screen.draw(object, Locations.MAP, 0, 0)
|
self.screen.draw(object, Locations.MAP, 0, 0)
|
||||||
self.collidables.add(object)
|
self.collidables.add(object)
|
||||||
elif tile == 'w':
|
elif tile == 'w':
|
||||||
|