upd maze
This commit is contained in:
parent
51648955e9
commit
4ef2aea6ee
@ -1,4 +1,22 @@
|
||||
import graph
|
||||
"""
|
||||
Создание лабиринтов в игре
|
||||
https://stepik.org/lesson/502494/step/3?unit=494196
|
||||
|
||||
Задача:
|
||||
Сделайте "догонялку" в лабиринте. Придумайте дизайн лабиринта, рисунки для стенки и проходов. Через стенки Ваш герой не должен
|
||||
передвигаться.
|
||||
|
||||
Решение:
|
||||
Игра за призрака, нужно из входа в лабиринт "догнать" выход.
|
||||
Управление стрелками и WASD, выход по Esc или Q.
|
||||
Чтобы пройти игру, нужно дойти до выхода.
|
||||
|
||||
Картинки захардкожены прямо в скрипт.
|
||||
Зависимости: graph pillow
|
||||
|
||||
Библиотека graph: https://kpolyakov.spb.ru/download/pygraph.zip
|
||||
"""
|
||||
|
||||
from graph import *
|
||||
import PIL
|
||||
import os
|
||||
@ -13,13 +31,6 @@ import zlib
|
||||
|
||||
from random import randrange, choice
|
||||
|
||||
consts = types.SimpleNamespace()
|
||||
consts.VK_Q = 81
|
||||
consts.VK_W = 87
|
||||
consts.VK_A = 65
|
||||
consts.VK_S = 83
|
||||
consts.VK_D = 68
|
||||
|
||||
# объявление переменные для хранения картинок
|
||||
HARDCODED_DATA: bytes
|
||||
|
||||
@ -120,7 +131,8 @@ def make_level(scene_sz, hard):
|
||||
data["last_right"] = data["right"]
|
||||
# отрисовка движения
|
||||
if data["hero_moved"]:
|
||||
moveObjectTo(data["hero"], *data["hero_pos"].transform(box_sz))
|
||||
new_pos = data["hero_pos"].transform(box_sz)
|
||||
moveObjectTo(data["hero"], *new_pos)
|
||||
data["hero_moved"] = False
|
||||
# конец лабиринта|игры / победа
|
||||
if data["finished"]:
|
||||
@ -159,18 +171,18 @@ def move_hero(data, delta):
|
||||
|
||||
def keyPressed(event):
|
||||
delta = None
|
||||
match event.keycode:
|
||||
case graph.VK_LEFT:
|
||||
match event.keysym:
|
||||
case "Left" | "a":
|
||||
delta = Point(-1, 0)
|
||||
data["right"] = False
|
||||
case graph.VK_RIGHT:
|
||||
case "Right" | "d":
|
||||
delta = Point(1, 0)
|
||||
data["right"] = True
|
||||
case graph.VK_UP:
|
||||
case "Up" | "w":
|
||||
delta = Point(0, -1)
|
||||
case graph.VK_DOWN:
|
||||
case "Down" | "s":
|
||||
delta = Point(0, 1)
|
||||
case consts.VK_Q | graph.VK_ESCAPE:
|
||||
case "Escape" | "q":
|
||||
killTimer(data["update_timer"])
|
||||
close()
|
||||
if delta is not None:
|
||||
|
Loading…
Reference in New Issue
Block a user