Re: Как обнаружить и завершить игру, когда спрайт Pygame сталкивается с хвостом (используя screen.get_at)

Если по какой-то причине вам не нравятся интерактивные редакторы, вы можете использовать git rebase --onto.

Предположим, вы хотите изменить Commit1. Прежде всего, отделитесь от до Commit1:

git checkout -b amending [commit before Commit1]

Во-вторых, возьмите Commit1 с cherry-pick:

git cherry-pick Commit1

Теперь измените ваши изменения, создавая Commit1':

git add ...
git commit --amend -m "new message for Commit1"

И, наконец, после того, как вы спрятали какие-либо другие изменения, пересаживайте остальную часть своих коммитов до master поверх вашей новой фиксации:

git rebase --onto amending Commit1 master

Читайте: «rebase, на ветку amending, все фиксируются между Commit1 (не включительно) и master (включительно)». То есть Commit2 и Commit3 полностью разрезают старый Commit1. Вы можете просто выбрать вишню, но это проще.

Не забудьте очистить свои ветви!

git branch -d amending
0
задан Gal 15 January 2019 в 18:02
поделиться

1 ответ

Простой способ - вычислить шаг и проверить, не растоптали ли вы пустое пространство. Если это не согласуется с дизайном вашего механизма синхронизации, то посмотрите на следующее место, как вы бы сделали шаг:

def peek_next(self):
    return (self.rect.x + self.change_x,
            self.rect.y + self.change_y)

...
player_next_x, player_next_y = player.peek_next()
if (screen.get_at((player_next_x, player_next_y)) != BACKGROUND_COLOUR):
# player hit tail

Или введите новую позицию непосредственно в get_at: [ 114]

if screen.get_at(player.peek_next()) != BACKGROUND_COLOUR:
# player bit own tail; dies of poisoning
0
ответ дан Prune 15 January 2019 в 18:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: