Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
snow79
0 / 0 / 0
Регистрация: 08.06.2019
Сообщений: 28
1

Движение NPC

07.07.2019, 15:12. Просмотров 938. Ответов 3

Помогите написать простую функцию движения NPC, сначала NPC появляется в центре экрана, затем будет передвигаться в случайную сторону(влево, вправо, вверх и вниз) делая случайное количество шагов. Есть while в котором вызывается эта функция, но сама она должна работать без циклов.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2019, 15:12
Ответы с готовыми решениями:

NPC pygame
Делаю игру на питоне. Есть класс NPC, в нем есть метод для погони за игроком. Вся проблема в...

Создание движения npc
Здравствуйте. Подскажите как организовать. Есть npc. Есть игрок. Монстер все время бегает за...

Не передвигается npc(NavMesh)
Хочу написать ии с помощю NavMesh, посмотрел много уроков по этой теме, пробывал много примеров но...

Как сделать NPC
Такой вопрос. Хочу сделать , чтобы люди ходили как в GTA например по каком-нибудь маршруту. И...

Почему NPC привязан к гл. персонажу
помогите, в чем ошибка? import flash.events.KeyboardEvent; import flash.ui.Keyboard; import...

3
tooru
381 / 243 / 152
Регистрация: 07.01.2019
Сообщений: 804
07.07.2019, 15:52 2
Лучший ответ Сообщение было отмечено snow79 как решение

Решение

Цитата Сообщение от snow79 Посмотреть сообщение
Помогите написать простую функцию движения NPC, сначала NPC появляется в центре экрана,
Должен быть класс NPC и у него поля x, y и метод

Python
1
2
3
4
5
def move(self):
     moves = [(0, 1), (0, -1), (1, 0), (-1, 0)]
     step = moves[randint(0, 4)]
     self.x += step[0]
     self.y += step[1]
1
snow79
0 / 0 / 0
Регистрация: 08.06.2019
Сообщений: 28
07.07.2019, 19:07  [ТС] 3
Сделал так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    def action(self):
        global action_done
        if action_done == True:
            self.count_move = 0
            self.count = 200
            self.xy = [(0, 2), (0, -2), (2, 0), (-2, 0), (2, 2), (-2, 2), (2, -2), (-2, -2)]
       
            self.xy = random.choice(self.xy)
            action_done = False
        if self.count_move >= self.count:
            action_done = True
        self.count_move += 1
        print(self.count_move)
            
        self.x += self.xy[0]
        self.y += self.xy[1]
        screen.blit(NPC_im, (self.x+x, self.y+y))
        
        pygame.display.update()
        
        clock.tick(FPS)
Но осталась одна проблема, дело в том что NPC обновляется в разное время с основным циклом, поэтому он на несколько миллисекунд может пропадать и появляться снова, как можно это исправить?
0
tooru
381 / 243 / 152
Регистрация: 07.01.2019
Сообщений: 804
07.07.2019, 19:19 4
Цитата Сообщение от snow79 Посмотреть сообщение
дело в том что NPC обновляется в разное время с основным циклом,
Обновлять позицию NPC одновременно со всеми в основном цикле
0
07.07.2019, 19:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2019, 19:19

Отключение AI у NPC в Half-Life 2
После загрузки уровня у всех врагов пропадает интелект.(стоят,ни на что не реагируют).

NPC проваливаются друг в друга
Добрый день! У меня на сцене есть игрок и несколько одинаковых NPC которые тупо следуют за...

Диалоги с NPC через xml?
Приветствую всех дорогие форумчане, суть дела вот в чём для небольшого дипломного проекта.Который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru