Ячейка в сетке игры «Змея» всегда поднимается в верхнюю часть экрана. ⇐ Python
Ячейка в сетке игры «Змея» всегда поднимается в верхнюю часть экрана.
На уроке информатики мне поручили написать мод для базовой программы игры со змеями. Я решил добавить функцию, при которой, когда пользователь нажимает кнопку ПРОБЕЛ, он будет открывать портал в зависимости от того, в каком режиме находится пользователь (аналогично игровому порталу). Чтобы начать с основ, я решил начать с метода съемки и хотел, чтобы он был анимирован.
Мне удалось заставить работать синий портал/портал входа, но когда я попытался реализовать те же методы для оранжевого портала/выхода, он просто автоматически переместился в верхнюю часть экрана.
Я пытался изменить переменные с локальных на глобальные, используя дополнительные функции вместо того, чтобы просто делать это в одной, снова и снова бился головой о стену, но ничего не получалось. Что я делаю не так
Код Словарь для порталов ENTERP = 0 ВЫХОД = 1 порталПос = [ # Первый дикт — это входной портал, а второй — выходной портал. {"x": random.randint(0, 31), "y": random.randint(0, 23), "dir": ""}, {"x": random.randint(0, 31), "y": random.randint(0, 23), "dir": ""} ] Ключевые проверки для события в pygame.event.get(): # если event.type == ВЫХОД: завершить() elif event.type == KEYDOWN: if (event.key == K_LEFT или event.key == K_a) и направление != RIGHT: направление = ВЛЕВО elif (event.key == K_RIGHT или event.key == K_d) и направление != ВЛЕВО: направление = ВПРАВО elif (event.key == K_UP или event.key == K_w) и направление != ВНИЗ: направление = ВВЕРХ elif (event.key == K_DOWN или event.key == K_s) и направление != ВВЕРХ: направление = ВНИЗ elif event.key == K_p: печать (exitPortAniCount) elif event.key == K_SPACE: если порталGunMode == "ent": portalPos[ENTERP]["dir"] = направление порталПос[ENTERP]['x'] = wormCoords[HEAD]['x'] порталПос[ENTERP]['y'] = wormCoords[HEAD]['y'] enterPortAniCount = ПРАНЖЕ если порталGunMode == "ext": portalPos[EXITP]["dir"] = направление порталПос[EXITP]['x'] = wormCoords[HEAD]['x'] portPos[EXITP]['y'] = wormCoords[HEAD]['y'] выходPortAniCount = ПРАНГЕ elif event.key == K_ESCAPE: завершить() Проверки привязки к порталу def checkPortalBounds(): если порталПос[ENTERP]['x'] >= 31: порталПос[ENTERP]['x'] = 31 elifportalPos[ENTERP]['x'] = 23: порталПос[ENTERP]['y'] = 23 elifportalPos[ENTERP]['y'] = 31: порталПос[EXITP]['x'] = 31 elifportalPos[EXITP]['x'] = 23: порталПос[EXITP]['y'] = 23 elifportalPos[EXITP]['y'] >= 0: порталПос[EXITP]['y'] = 0 Обновить анимацию портала def updatePortalAnims(): глобальный EnterPortAniCount, выходPortAniCount для меня в диапазоне (PRANGE): если не enterPortAniCount
На уроке информатики мне поручили написать мод для базовой программы игры со змеями. Я решил добавить функцию, при которой, когда пользователь нажимает кнопку ПРОБЕЛ, он будет открывать портал в зависимости от того, в каком режиме находится пользователь (аналогично игровому порталу). Чтобы начать с основ, я решил начать с метода съемки и хотел, чтобы он был анимирован.
Мне удалось заставить работать синий портал/портал входа, но когда я попытался реализовать те же методы для оранжевого портала/выхода, он просто автоматически переместился в верхнюю часть экрана.
Я пытался изменить переменные с локальных на глобальные, используя дополнительные функции вместо того, чтобы просто делать это в одной, снова и снова бился головой о стену, но ничего не получалось. Что я делаю не так
Код Словарь для порталов ENTERP = 0 ВЫХОД = 1 порталПос = [ # Первый дикт — это входной портал, а второй — выходной портал. {"x": random.randint(0, 31), "y": random.randint(0, 23), "dir": ""}, {"x": random.randint(0, 31), "y": random.randint(0, 23), "dir": ""} ] Ключевые проверки для события в pygame.event.get(): # если event.type == ВЫХОД: завершить() elif event.type == KEYDOWN: if (event.key == K_LEFT или event.key == K_a) и направление != RIGHT: направление = ВЛЕВО elif (event.key == K_RIGHT или event.key == K_d) и направление != ВЛЕВО: направление = ВПРАВО elif (event.key == K_UP или event.key == K_w) и направление != ВНИЗ: направление = ВВЕРХ elif (event.key == K_DOWN или event.key == K_s) и направление != ВВЕРХ: направление = ВНИЗ elif event.key == K_p: печать (exitPortAniCount) elif event.key == K_SPACE: если порталGunMode == "ent": portalPos[ENTERP]["dir"] = направление порталПос[ENTERP]['x'] = wormCoords[HEAD]['x'] порталПос[ENTERP]['y'] = wormCoords[HEAD]['y'] enterPortAniCount = ПРАНЖЕ если порталGunMode == "ext": portalPos[EXITP]["dir"] = направление порталПос[EXITP]['x'] = wormCoords[HEAD]['x'] portPos[EXITP]['y'] = wormCoords[HEAD]['y'] выходPortAniCount = ПРАНГЕ elif event.key == K_ESCAPE: завершить() Проверки привязки к порталу def checkPortalBounds(): если порталПос[ENTERP]['x'] >= 31: порталПос[ENTERP]['x'] = 31 elifportalPos[ENTERP]['x'] = 23: порталПос[ENTERP]['y'] = 23 elifportalPos[ENTERP]['y'] = 31: порталПос[EXITP]['x'] = 31 elifportalPos[EXITP]['x'] = 23: порталПос[EXITP]['y'] = 23 elifportalPos[EXITP]['y'] >= 0: порталПос[EXITP]['y'] = 0 Обновить анимацию портала def updatePortalAnims(): глобальный EnterPortAniCount, выходPortAniCount для меня в диапазоне (PRANGE): если не enterPortAniCount
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ячейка формата AG Grid требует комментариев, если другая ячейка не равна 0
Anonymous » » в форуме Python - 0 Ответы
- 98 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ячейка формата AG Grid требует комментариев, если другая ячейка не равна 0
Anonymous » » в форуме Python - 0 Ответы
- 102 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Таблица ячейка дочернего элемента (div) не может иметь такую же высоту, как и ячейка таблицы
Anonymous » » в форуме Html - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Таблица ячейка дочернего элемента (div) не может иметь такую же высоту, как и ячейка таблицы
Anonymous » » в форуме CSS - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-