added tomato, and fixed offset bug in draw sprite
26
src/game.py
@@ -3,7 +3,7 @@ import ion, time
|
|||||||
|
|
||||||
print("Game started")
|
print("Game started")
|
||||||
colors = [color(i) for i in [(26,28,44),(93,39,93),(177,62,83),(239,125,87),(255,205,117),(167,240,112),(56,183,100),(37,113,121),(41,54,111),(59,93,201),(65,166,246),(115,239,247),(244,244,244),(148,176,194),(86,108,134),(51,60,87)]]
|
colors = [color(i) for i in [(26,28,44),(93,39,93),(177,62,83),(239,125,87),(255,205,117),(167,240,112),(56,183,100),(37,113,121),(41,54,111),(59,93,201),(65,166,246),(115,239,247),(244,244,244),(148,176,194),(86,108,134),(51,60,87)]]
|
||||||
sprites ={'assiette': (0, 2, 20, 17,
|
sprites ={'assiette': (0, 3, 20, 17,
|
||||||
'ggggggg000000gggggggggggg00cccccc00gggggggg00cccccccccc00ggggg0cccccccccccccc0ggg0cccccddddddccccc0gg0ccccdccccccdcccc0g0ccccdccccccccdcccc00cccdccccccccccdccd00cccdcccccccccccccd00dccdcccccccccccccd00dcccdccccccccccccd0g0dcccccddcccccccd0gg0dccccccccccccccd0ggg0ddccccccccccdd0ggggg00ddccccccdd00gggggggg00dddddd00gggggggggggg000000ggggggg'),
|
'ggggggg000000gggggggggggg00cccccc00gggggggg00cccccccccc00ggggg0cccccccccccccc0ggg0cccccddddddccccc0gg0ccccdccccccdcccc0g0ccccdccccccccdcccc00cccdccccccccccdccd00cccdcccccccccccccd00dccdcccccccccccccd00dcccdccccccccccccd0g0dcccccddcccccccd0gg0dccccccccccccccd0ggg0ddccccccccccdd0ggggg00ddccccccdd00gggggggg00dddddd00gggggggggggg000000ggggggg'),
|
||||||
'caisse': (0, 0, 20, 20,
|
'caisse': (0, 0, 20, 20,
|
||||||
'gg0000000000000000ggg0c0ccccccccccdcdd0g0ccd0ddcccddcdddddc000cdd0cccddcdddddcc00c0de0000000000dccc00cd00eeedddd0dd0ccc00cdc0eddddd0ddd0ccd00ccc0edddd0ccd00cde00ccc0dddd0cdd0e0dee00ccd0ddd0ddd0ed0eed00cdd0dd0ddd0edd0edd00ddc0d0cdd0eddd0dde00ccd00cdd0eeddd0dee00cdd0cdd0eedddd0eee00ddd0dd0eeddddd00ee00ddde0000000000cd0e00dddccccdeecce0ccd000ddccccdeeddeee0dde0g0ccccdeeddeeeee0d0ggg0000000000000000gg'),
|
'gg0000000000000000ggg0c0ccccccccccdcdd0g0ccd0ddcccddcdddddc000cdd0cccddcdddddcc00c0de0000000000dccc00cd00eeedddd0dd0ccc00cdc0eddddd0ddd0ccd00ccc0edddd0ccd00cde00ccc0dddd0cdd0e0dee00ccd0ddd0ddd0ed0eed00cdd0dd0ddd0edd0edd00ddc0d0cdd0eddd0dde00ccd00cdd0eeddd0dee00cdd0cdd0eedddd0eee00ddd0dd0eeddddd00ee00ddde0000000000cd0e00dddccccdeecce0ccd000ddccccdeeddeee0dde0g0ccccdeeddeeeee0d0ggg0000000000000000gg'),
|
||||||
@@ -15,6 +15,10 @@ sprites ={'assiette': (0, 2, 20, 17,
|
|||||||
'gggggg00000ggggg000ccccc0ggg0cccc000c0gg0c00c100g0c00c0g0c1cc00c00c00g0c11cc1001cc00ccc110gg011cc1000c0ggg0011c0g0c0ggggg00c00g0c0ggggg01cc00c0gggggg011cc10ggggggg00110gggggggggg00gg'),
|
'gggggg00000ggggg000ccccc0ggg0cccc000c0gg0c00c100g0c00c0g0c1cc00c00c00g0c11cc1001cc00ccc110gg011cc1000c0ggg0011c0g0c0ggggg00c00g0c0ggggg01cc00c0gggggg011cc10ggggggg00110gggggggggg00gg'),
|
||||||
'pain': (2, 4, 17, 14,
|
'pain': (2, 4, 17, 14,
|
||||||
'ggggg0000000ggggggg0004444444000ggg04cc44443444330g0444444344444433004443444443444330043444444444443300444444444433333004433443333333330g000033333330000g0033300000003330004444333344444330g044344444433330ggg0004343333000ggggggg0000000ggggg'),
|
'ggggg0000000ggggggg0004444444000ggg04cc44443444330g0444444344444433004443444443444330043444444444443300444444444433333004433443333333330g000033333330000g0033300000003330004444333344444330g044344444433330ggg0004343333000ggggggg0000000ggggg'),
|
||||||
|
'pain_bas': (2, 12, 17, 5,
|
||||||
|
'00333ggggggg3330004444333344444330g044344444433330ggg0004343333000ggggggg0000000ggggg'),
|
||||||
|
'pain_haut': (2, 0, 17, 10,
|
||||||
|
'ggggg0000000ggggggg0004444444000ggg04cc44443444330g0444444344444433004443444443444330043444444444443300444444444433333004433443333333330g000033333330000gggggg0000000ggggg'),
|
||||||
'planche': (0, 5, 20, 14,
|
'planche': (0, 5, 20, 14,
|
||||||
'ggggg00000000000000ggggg0333333333333330g00g0333003333333330033003320c0333323330033333330cd022233330032333330ddc023333300332233330ddd033333002200333330ddd033330g00g03333330ddf03330gggg022222220fdf0220ggggg00000000ffff00gggggggggggggg00fdf0gggggggggggggggg0ff0ggggggggggggggggg00gg'),
|
'ggggg00000000000000ggggg0333333333333330g00g0333003333333330033003320c0333323330033333330cd022233330032333330ddc023333300332233330ddd033333002200333330ddd033330g00g03333330ddf03330gggg022222220fdf0220ggggg00000000ffff00gggggggggggggg00fdf0gggggggggggggggg0ff0ggggggggggggggggg00gg'),
|
||||||
'player_down': (3, 0, 15, 20,
|
'player_down': (3, 0, 15, 20,
|
||||||
@@ -36,10 +40,15 @@ sprites ={'assiette': (0, 2, 20, 17,
|
|||||||
'steak': (3, 3, 14, 14,
|
'steak': (3, 3, 14, 14,
|
||||||
'ggg0000000gggggg033322cc0gggg0cc222d2c20gg032d22cc2c220g0322d2c222c0gg022d2c22220gggg0c22cd220ggggg022222d20gggggg0222d2d20gggggg02d2d2220gggggg0c2c222c0gggggg0cc22d220gggggg00cc2220gggggggg00000g'),
|
'ggg0000000gggggg033322cc0gggg0cc222d2c20gg032d22cc2c220g0322d2c222c0gg022d2c22220gggg0c22cd220ggggg022222d20gggggg0222d2d20gggggg02d2d2220gggggg0c2c222c0gggggg0cc22d220gggggg00cc2220gggggggg00000g'),
|
||||||
'steak_cuit': (3, 5, 15, 9,
|
'steak_cuit': (3, 5, 15, 9,
|
||||||
'gggg0000000ggggg0000223320000g003323332333200033233322333330032333233323320023332333233220022222333222220g0002222222000ggggg0000000gggg')}
|
'gggg0000000ggggg0000223320000g003323332333200033233322333330032333233323320023332333233220022222333222220g0002222222000ggggg0000000gggg'),
|
||||||
|
'tomate': (4, 3, 12, 13,
|
||||||
|
'ggggggg0gggggggg0g060gggggg060700ggggg02277220ggg0276767220g026226227220022c22722120022cc222221002222c222110g0222222210gg0222221110ggg00111100gggggg0000gggg'),
|
||||||
|
'tomate_coupe': (3, 4, 13, 11,
|
||||||
|
'gggggg000ggggggggg02220ggggggg0233220gggggg02434220ggg00233433220g022224344320022334223320g02334320220gg0223442000gggg0222220ggggggg00000gggggg')}
|
||||||
|
|
||||||
key_pressed = [False]*5
|
key_pressed = [False]*5
|
||||||
|
|
||||||
maps = [[[2, 2, 2, 3, 3, 2, 11, 2], [2, 1, 1, 1, 1, 1, 1, 4], [6, 0, 0, 4, 9, 0, 0, 5], [7, 0, 0, 2, 8, 0, 0, 2], [1, 0, 0, 1, 1, 0, 0, 1]]]
|
maps = [[[2, 2, 2, 3, 3, 2, 11, 2], [12, 1, 1, 1, 1, 1, 1, 4], [6, 0, 0, 4, 9, 0, 0, 5], [7, 0, 0, 2, 8, 0, 0, 2], [1, 0, 0, 1, 1, 0, 0, 1]]]
|
||||||
|
|
||||||
def draw_sprite(sprite_name: str, x: int, y: int, multiplier=1)->None:
|
def draw_sprite(sprite_name: str, x: int, y: int, multiplier=1)->None:
|
||||||
if sprite_name not in sprites: raise ValueError('Sprite name not in sprites')
|
if sprite_name not in sprites: raise ValueError('Sprite name not in sprites')
|
||||||
@@ -49,7 +58,7 @@ def draw_sprite(sprite_name: str, x: int, y: int, multiplier=1)->None:
|
|||||||
for k in range(w):
|
for k in range(w):
|
||||||
px = int(data[w*i+k], 18)
|
px = int(data[w*i+k], 18)
|
||||||
if px != 16 and px != 17:
|
if px != 16 and px != 17:
|
||||||
fill_rect(x+offx+curx*multiplier,y+offy+cury*multiplier,multiplier,multiplier,colors[px])
|
fill_rect(x+offx*multiplier+curx*multiplier,y+offy*multiplier+cury*multiplier,multiplier,multiplier,colors[px])
|
||||||
curx += 1
|
curx += 1
|
||||||
curx=0
|
curx=0
|
||||||
cury+=1
|
cury+=1
|
||||||
@@ -113,6 +122,8 @@ class Game:
|
|||||||
self.map[i][k] = (el[0],"salade_cuite")
|
self.map[i][k] = (el[0],"salade_cuite")
|
||||||
if el[1] == "oignon":
|
if el[1] == "oignon":
|
||||||
self.map[i][k] = (el[0],"oignon_coupe")
|
self.map[i][k] = (el[0],"oignon_coupe")
|
||||||
|
if el[1] == "tomate":
|
||||||
|
self.map[i][k] = (el[0],"tomate_coupe")
|
||||||
self.draw_element(self.map[i][k],k,i)
|
self.draw_element(self.map[i][k],k,i)
|
||||||
else:
|
else:
|
||||||
self.draw_progressbar(k,i, (time.monotonic()-el[2])*18//el[3])
|
self.draw_progressbar(k,i, (time.monotonic()-el[2])*18//el[3])
|
||||||
@@ -190,6 +201,10 @@ class Game:
|
|||||||
elif el==11:
|
elif el==11:
|
||||||
fill_rect(x*40, y*40+40, 40, 40, colors[4])
|
fill_rect(x*40, y*40+40, 40, 40, colors[4])
|
||||||
draw_sprite("poubelle", x*40, y*40+40, 2)
|
draw_sprite("poubelle", x*40, y*40+40, 2)
|
||||||
|
elif el==12:
|
||||||
|
fill_rect(x*40, y*40+40, 40, 40, colors[4])
|
||||||
|
draw_sprite("caisse", x*40, y*40+40, 2)
|
||||||
|
draw_sprite("tomate", x*40, y*40+40, 2)
|
||||||
if type(element)==tuple:
|
if type(element)==tuple:
|
||||||
draw_sprite(element[1], x*40, y*40+40, 2)
|
draw_sprite(element[1], x*40, y*40+40, 2)
|
||||||
|
|
||||||
@@ -209,7 +224,7 @@ class Game:
|
|||||||
pass
|
pass
|
||||||
elif old_el==3 and holding.i_nom=='steak':
|
elif old_el==3 and holding.i_nom=='steak':
|
||||||
el = (el[0],el[1],time.monotonic(), 8)
|
el = (el[0],el[1],time.monotonic(), 8)
|
||||||
elif old_el==4 and(holding.i_nom=='oignon' or holding.i_nom=='salade'):
|
elif old_el==4 and(holding.i_nom=='oignon' or holding.i_nom=='salade' or holding.i_nom=='tomate'):
|
||||||
el = (el[0],el[1],time.monotonic(), 5)
|
el = (el[0],el[1],time.monotonic(), 5)
|
||||||
else:
|
else:
|
||||||
return holding
|
return holding
|
||||||
@@ -224,6 +239,7 @@ class Game:
|
|||||||
elif el==7: return Ingredient("salade")
|
elif el==7: return Ingredient("salade")
|
||||||
elif el==8: return Ingredient("steak")
|
elif el==8: return Ingredient("steak")
|
||||||
elif el==9: return Ingredient("pain")
|
elif el==9: return Ingredient("pain")
|
||||||
|
elif el==12: return Ingredient("tomate")
|
||||||
return None
|
return None
|
||||||
if el[0]==2:
|
if el[0]==2:
|
||||||
print("element picked")
|
print("element picked")
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ colors_value = {(86,108,134): (0, "sol"),
|
|||||||
(167,240,112): (7, "salade"),
|
(167,240,112): (7, "salade"),
|
||||||
(177,62,83): (8, "viande"),
|
(177,62,83): (8, "viande"),
|
||||||
(37,113,121): (9, "pain"),
|
(37,113,121): (9, "pain"),
|
||||||
(26,28,44): (11,"poubelle")
|
(26,28,44): (11,"poubelle"),
|
||||||
|
(65,166,246): (12,"tomate")
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_color_id(r, g, b, a):
|
def get_color_id(r, g, b, a):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
map_0.png
|
map_0.png
|
||||||
{'map_0': [[2, 2, 2, 3, 3, 2, 11, 2], [2, 1, 1, 1, 1, 1, 1, 4],
|
{'map_0': [[2, 2, 2, 3, 3, 2, 11, 2], [12, 1, 1, 1, 1, 1, 1, 4],
|
||||||
[6, 0, 0, 4, 9, 0, 0, 5], [7, 0, 0, 2, 8, 0, 0, 2],
|
[6, 0, 0, 4, 9, 0, 0, 5], [7, 0, 0, 2, 8, 0, 0, 2],
|
||||||
[1, 0, 0, 1, 1, 0, 0, 1]]}
|
[1, 0, 0, 1, 1, 0, 0, 1]]}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 178 B After Width: | Height: | Size: 178 B |
|
Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 266 B |
BIN
src/sprites/pain_bas.png
Normal file
|
After Width: | Height: | Size: 197 B |
BIN
src/sprites/pain_haut.png
Normal file
|
After Width: | Height: | Size: 224 B |
@@ -1,5 +1,5 @@
|
|||||||
_converter.py
|
_converter.py
|
||||||
{'assiette': (0, 2, 20, 17,
|
{'assiette': (0, 3, 20, 17,
|
||||||
'ggggggg000000gggggggggggg00cccccc00gggggggg00cccccccccc00ggggg0cccccccccccccc0ggg0cccccddddddccccc0gg0ccccdccccccdcccc0g0ccccdccccccccdcccc00cccdccccccccccdccd00cccdcccccccccccccd00dccdcccccccccccccd00dcccdccccccccccccd0g0dcccccddcccccccd0gg0dccccccccccccccd0ggg0ddccccccccccdd0ggggg00ddccccccdd00gggggggg00dddddd00gggggggggggg000000ggggggg'),
|
'ggggggg000000gggggggggggg00cccccc00gggggggg00cccccccccc00ggggg0cccccccccccccc0ggg0cccccddddddccccc0gg0ccccdccccccdcccc0g0ccccdccccccccdcccc00cccdccccccccccdccd00cccdcccccccccccccd00dccdcccccccccccccd00dcccdccccccccccccd0g0dcccccddcccccccd0gg0dccccccccccccccd0ggg0ddccccccccccdd0ggggg00ddccccccdd00gggggggg00dddddd00gggggggggggg000000ggggggg'),
|
||||||
'caisse': (0, 0, 20, 20,
|
'caisse': (0, 0, 20, 20,
|
||||||
'gg0000000000000000ggg0c0ccccccccccdcdd0g0ccd0ddcccddcdddddc000cdd0cccddcdddddcc00c0de0000000000dccc00cd00eeedddd0dd0ccc00cdc0eddddd0ddd0ccd00ccc0edddd0ccd00cde00ccc0dddd0cdd0e0dee00ccd0ddd0ddd0ed0eed00cdd0dd0ddd0edd0edd00ddc0d0cdd0eddd0dde00ccd00cdd0eeddd0dee00cdd0cdd0eedddd0eee00ddd0dd0eeddddd00ee00ddde0000000000cd0e00dddccccdeecce0ccd000ddccccdeeddeee0dde0g0ccccdeeddeeeee0d0ggg0000000000000000gg'),
|
'gg0000000000000000ggg0c0ccccccccccdcdd0g0ccd0ddcccddcdddddc000cdd0cccddcdddddcc00c0de0000000000dccc00cd00eeedddd0dd0ccc00cdc0eddddd0ddd0ccd00ccc0edddd0ccd00cde00ccc0dddd0cdd0e0dee00ccd0ddd0ddd0ed0eed00cdd0dd0ddd0edd0edd00ddc0d0cdd0eddd0dde00ccd00cdd0eeddd0dee00cdd0cdd0eedddd0eee00ddd0dd0eeddddd00ee00ddde0000000000cd0e00dddccccdeecce0ccd000ddccccdeeddeee0dde0g0ccccdeeddeeeee0d0ggg0000000000000000gg'),
|
||||||
@@ -11,6 +11,10 @@ _converter.py
|
|||||||
'gggggg00000ggggg000ccccc0ggg0cccc000c0gg0c00c100g0c00c0g0c1cc00c00c00g0c11cc1001cc00ccc110gg011cc1000c0ggg0011c0g0c0ggggg00c00g0c0ggggg01cc00c0gggggg011cc10ggggggg00110gggggggggg00gg'),
|
'gggggg00000ggggg000ccccc0ggg0cccc000c0gg0c00c100g0c00c0g0c1cc00c00c00g0c11cc1001cc00ccc110gg011cc1000c0ggg0011c0g0c0ggggg00c00g0c0ggggg01cc00c0gggggg011cc10ggggggg00110gggggggggg00gg'),
|
||||||
'pain': (2, 4, 17, 14,
|
'pain': (2, 4, 17, 14,
|
||||||
'ggggg0000000ggggggg0004444444000ggg04cc44443444330g0444444344444433004443444443444330043444444444443300444444444433333004433443333333330g000033333330000g0033300000003330004444333344444330g044344444433330ggg0004343333000ggggggg0000000ggggg'),
|
'ggggg0000000ggggggg0004444444000ggg04cc44443444330g0444444344444433004443444443444330043444444444443300444444444433333004433443333333330g000033333330000g0033300000003330004444333344444330g044344444433330ggg0004343333000ggggggg0000000ggggg'),
|
||||||
|
'pain_bas': (2, 12, 17, 5,
|
||||||
|
'00333ggggggg3330004444333344444330g044344444433330ggg0004343333000ggggggg0000000ggggg'),
|
||||||
|
'pain_haut': (2, 0, 17, 10,
|
||||||
|
'ggggg0000000ggggggg0004444444000ggg04cc44443444330g0444444344444433004443444443444330043444444444443300444444444433333004433443333333330g000033333330000gggggg0000000ggggg'),
|
||||||
'planche': (0, 5, 20, 14,
|
'planche': (0, 5, 20, 14,
|
||||||
'ggggg00000000000000ggggg0333333333333330g00g0333003333333330033003320c0333323330033333330cd022233330032333330ddc023333300332233330ddd033333002200333330ddd033330g00g03333330ddf03330gggg022222220fdf0220ggggg00000000ffff00gggggggggggggg00fdf0gggggggggggggggg0ff0ggggggggggggggggg00gg'),
|
'ggggg00000000000000ggggg0333333333333330g00g0333003333333330033003320c0333323330033333330cd022233330032333330ddc023333300332233330ddd033333002200333330ddd033330g00g03333330ddf03330gggg022222220fdf0220ggggg00000000ffff00gggggggggggggg00fdf0gggggggggggggggg0ff0ggggggggggggggggg00gg'),
|
||||||
'player_down': (3, 0, 15, 20,
|
'player_down': (3, 0, 15, 20,
|
||||||
@@ -32,4 +36,8 @@ _converter.py
|
|||||||
'steak': (3, 3, 14, 14,
|
'steak': (3, 3, 14, 14,
|
||||||
'ggg0000000gggggg033322cc0gggg0cc222d2c20gg032d22cc2c220g0322d2c222c0gg022d2c22220gggg0c22cd220ggggg022222d20gggggg0222d2d20gggggg02d2d2220gggggg0c2c222c0gggggg0cc22d220gggggg00cc2220gggggggg00000g'),
|
'ggg0000000gggggg033322cc0gggg0cc222d2c20gg032d22cc2c220g0322d2c222c0gg022d2c22220gggg0c22cd220ggggg022222d20gggggg0222d2d20gggggg02d2d2220gggggg0c2c222c0gggggg0cc22d220gggggg00cc2220gggggggg00000g'),
|
||||||
'steak_cuit': (3, 5, 15, 9,
|
'steak_cuit': (3, 5, 15, 9,
|
||||||
'gggg0000000ggggg0000223320000g003323332333200033233322333330032333233323320023332333233220022222333222220g0002222222000ggggg0000000gggg')}
|
'gggg0000000ggggg0000223320000g003323332333200033233322333330032333233323320023332333233220022222333222220g0002222222000ggggg0000000gggg'),
|
||||||
|
'tomate': (4, 3, 12, 13,
|
||||||
|
'ggggggg0gggggggg0g060gggggg060700ggggg02277220ggg0276767220g026226227220022c22722120022cc222221002222c222110g0222222210gg0222221110ggg00111100gggggg0000gggg'),
|
||||||
|
'tomate_coupe': (3, 4, 13, 11,
|
||||||
|
'gggggg000ggggggggg02220ggggggg0233220gggggg02434220ggg00233433220g022224344320022334223320g02334320220gg0223442000gggg0222220ggggggg00000gggggg')}
|
||||||
|
|||||||
BIN
src/sprites/tomate.png
Normal file
|
After Width: | Height: | Size: 295 B |
BIN
src/sprites/tomate_coupe.png
Normal file
|
After Width: | Height: | Size: 259 B |