Я программирую на языке C (среда Linux) видеоигру под названием Plants vs Frogger, по сути Crossy Road, но с лягушкой и некоторыми стреляющими растениями + несколькими крокодилами, которые плавают в центральной части карты. Мне нужно пройти эту игру, используя процессы, в которых я использую каналы для связи между различными частями программы.
У меня возникла проблема при попытке вставить процессы-крокодилы... мой проект состоит из нескольких частей, у нас есть main, где я вспоминаю основные процессы и функцию управления, где я управляю всеми процессами + функции, которые управляют вещами индивидуально (например, движениями).. моя идея создания этих крокодилов заключалась в том, чтобы создать массив процессов и через for заполнить этот массив , у каждого из этих крокодилов есть характеристики: y, направление, скорость и статус (хороший и плохой крокодил). Эти характеристики вставлены в структуру персонажа, которую я также использую для других «игровых персонажей», таких как лягушка и растения. Поэтому я вставил вилку под названием «река» в основную, где я вызываю функцию «functionRiver», в которой я создаю процессы-крокодилы внутри и заполняю их с помощью матрицы, эта матрица будет [8][3]? 8 — это потоки моей реки, а 3 — это: y, направление и скорость, которые затем будут переданы в следующую функцию: funcCrocodile (она вызывается каждый раз, когда в for создается процесс крокодила), где я управляю движениями крокодила с помощью while(1) и присвойте эти значения матрицы символьной структуре. Труба используется в начале функции крокодила и в конце я пишу позицию до и после движений. В функции управления потом через две функции, одну на удаление и одну на печать и идентификацию по id (параметр структуры символа) я понимаю, что это символ-крокодил и происходит удаление или позиция обновляется и потом печатается. Обнаруженная мной ошибка — это обнаружено повреждение стека, поэтому я предполагаю, что передаю что-то, что не могу передать... теперь я загружу часть код: основная часть, две функции река и крокодил + часть функции управления. Заранее благодарю всех, кто может мне помочь, и заранее уточняю, что мой код работал отлично до включения крокодилов.
При необходимости могу выслать и весь проект.
(комментарии и названия написаны на итальянском языке, при необходимости переведу все на английский).
Я программирую на языке C (среда Linux) видеоигру под названием Plants vs Frogger, по сути Crossy Road, но с лягушкой и некоторыми стреляющими растениями + несколькими крокодилами, которые плавают в центральной части карты. Мне нужно пройти эту игру, используя процессы, в которых я использую каналы для связи между различными частями программы. У меня возникла проблема при попытке вставить процессы-крокодилы... мой проект состоит из нескольких частей, у нас есть main, где я вспоминаю основные процессы и функцию управления, где я управляю всеми процессами + функции, которые управляют вещами индивидуально (например, движениями).. моя идея создания этих крокодилов заключалась в том, чтобы создать массив процессов и через for заполнить этот массив , у каждого из этих крокодилов есть характеристики: y, направление, скорость и статус (хороший и плохой крокодил). Эти характеристики вставлены в структуру персонажа, которую я также использую для других «игровых персонажей», таких как лягушка и растения. Поэтому я вставил вилку под названием «река» в основную, где я вызываю функцию «functionRiver», в которой я создаю процессы-крокодилы внутри и заполняю их с помощью матрицы, эта матрица будет [8][3]? 8 — это потоки моей реки, а 3 — это: y, направление и скорость, которые затем будут переданы в следующую функцию: funcCrocodile (она вызывается каждый раз, когда в for создается процесс крокодила), где я управляю движениями крокодила с помощью while(1) и присвойте эти значения матрицы символьной структуре. Труба используется в начале функции крокодила и в конце я пишу позицию до и после движений. В функции управления потом через две функции, одну на удаление и одну на печать и идентификацию по id (параметр структуры символа) я понимаю, что это символ-крокодил и происходит удаление или позиция обновляется и потом печатается. Обнаруженная мной ошибка — это [b]обнаружено повреждение стека[/b], поэтому я предполагаю, что передаю что-то, что не могу передать... теперь я загружу часть код: основная часть, две функции река и крокодил + часть функции управления. Заранее благодарю всех, кто может мне помочь, и заранее уточняю, что мой код работал отлично до включения крокодилов. При необходимости могу выслать и весь проект. (комментарии и названия написаны на итальянском языке, при необходимости переведу все на английский). [code]int main() {
//Controllo che colore deve essere impostato al passaggio del proiettile in base alle coordinate if(proiettiliRana[(p.id-PR1)].y >= 5 && proiettiliRana[(p.id-PR1)].y < LINES-5 ){ wattron(schermataGioco,COLOR_PAIR(18)); mvwaddch(schermataGioco,proiettiliRana[(p.id-PR1)].y, proiettiliRana[(p.id-PR1)].x, ' '| COLOR_PAIR(18)); wattroff(schermataGioco, COLOR_PAIR(18)); }else{