Убрать всю эту галиматью и сделать просто управление отдельно машиной, отдельно героем. Но предварительно, введите к примеру глобальную переменную global.incar ,которая изначально равно 0.
Так же и реализовано. Управление игроком и машиной в обработчике событий игрока сделано для удобства тестирования и потом переедет на сове место. Как Вы могли бы заметить если бы читали мой код, там как раз используется глобальная булева переменная global.in_car.
ЦитатаRaven84 ()
if global.incar=0 { if (keyboard_check(ord('W'))) y -= walk_speed; if (keyboard_check(ord('S'))) y += walk_speed; и т.д. (т.е. все управление героем прописываем здесь) } else { x=obj_car.x y=obj_car.y }
Вы вот реально думаете, что я так не делал? Я создал максимально понятный топик и максимально описал проблему. Эта часть кода
Код
x=obj_car.x y=obj_car.y
Не срабатывает.
ЦитатаRaven84 ()
А можно и вообще было делать, чтобы он просто исчезал, а не двигать его вместе с машиной
Вот это уже похоже на совет, спасибо. Как-то не подумал, что может сработать. Единственное, при удалении объекта и создании его снова сработает событие Create и все характеристики сбросятся или Вы знаете как с этим бороться?
Цитатаmlpmmo ()
Берешь Scirra construct и не паришься делаешь, все равно дальше гцупа игра не пойдет.
Хорошие мальчики вкладывают не несущие смысла сообщения в спойлер.
Раз такое дело пошло я поясню. Возможно, Вы(профессионалы) создаете игры сразу как нужно правильно распределяя весь код и без ошибок, но я знаком с Game Maker 2-3 недели по выходным и еще не изучил все его возможности. Здесь на форуме я стараюсь задавать вопрос только если долго искал решение сам, затем в поиске и если нигде не нашел. Так что не стоит думать, что это все не работает из-за того, что я не в том месте прописал x=obj_car.x и y=obj_car.y.
mlpmmo, конкретно для тебя. Ты вот испускаешь свой негатив, но знаешь, использовать игровой движок для того что бы сделать онлайн калькулятор целых чисел на фоне чужой картинки это тоже не признак мастерства, сорян.
Сообщение отредактировал Code_Bryant - Понедельник, 06 Марта 2017, 13:14
UP Минимально обновил шапку, добавил первый скриншот
Добавлено (05 марта 2017, 18:46) --------------------------------------------- Всем привет! Проект Bullet Trade растет и развивается каждый день(но особенно интенсивно в выходные).
На данном этапе я хотел бы начать поиск сценариста.
Если у тебя есть какие-то идеи - пиши!)
Добавлено (06 марта 2017, 04:51) --------------------------------------------- Что нового:
06.03.2017
Обновлена анимация стрельбы.
Обновлена анимация перезарядки.
Добавлены вылетающие из оружия гильзы.
Гильзы остаются на земле.
Добавлены некоторые элементы прокачки умений стрельбы.
// УПРАВЛЕНИЕ with(obj_car) { if (global.in_car == true) { backride = false; friction = 0.2; if (keyboard_check(ord('W'))) { backride = false; speed = +obj_player.ride_speed; sprite_index = spr_car; } if (keyboard_check(ord('S'))) { backride = true; speed = -obj_player.ride_speed / 1.5; sprite_index = spr_car; } if (keyboard_check(ord('A'))) { sprite_index = spr_car_l; if (!backride) { direction += 2; } else { direction -= 2; } } if (keyboard_check(ord('D'))) { sprite_index = spr_car_r; if (!backride) { direction -= 2; } else { direction += 2; } } image_angle = direction; } }
with(obj_player) { if (global.in_car == false) { if ( keyboard_check(ord('W')) || keyboard_check(ord('A')) || keyboard_check(ord('S')) || keyboard_check(ord('D')) ) { if (keyboard_check(ord('W'))) y -= walk_speed; if (keyboard_check(ord('S'))) y += walk_speed; if (keyboard_check(ord('A'))) x -= walk_speed; if (keyboard_check(ord('D'))) x += walk_speed;
но координаты персонажа все равно не меняются когда едешь в машине
Добавлено (06 марта 2017, 03:54) --------------------------------------------- Уточню, что все происходит в Step евенте. Возможно, что-то нужно перенести в step end?
Сообщение отредактировал Code_Bryant - Воскресенье, 05 Марта 2017, 18:15
Исходя из собственного опыта могу сказать, что foreach нужно использовать для простого перебора данных, как, собственно, у Вас и реализованно и такая конструкция вовсе не является быдлокодом, но если Вам необходимо будет изменять(удалять/добавлять) элементы в ходе перебора, то совершенно точно, Вам нужно использовать цикл for().
Как-то так, например:
Код
for(int i = 0; i < bones.Count; i++){ if (bones[i] == "delete") { bones.Remove(i); i--; } }
Всем привет. Странно ведет себя код. В отладчике не меняются координаты объекта.
Суть вот в чем: Есть герой и есть автомобиль. При нажатии F он "садится" в автомобиль, а при нажатии X "выходит". Смысл такой что когда персонаж сел его координатам присваеваются значения автомобиля, а при выходе смещается только координата х для того что бы персонаж появился левее машины.
Но при езде не меняются координаты ни машины не персонажа, но машина ездит нормально(повторюсь, в отладчике координаты не меняются), а персонаж стоит на месте.
Интересно, что моб, который всегда нацелен на персонажа стреляет по координатам буд-то персонаж в машине.
Видео под спойлером:
Вот код:
Код
// УПРАВЛЕНИЕ if ( keyboard_check(ord('W')) || keyboard_check(ord('A')) || keyboard_check(ord('S')) || keyboard_check(ord('D')) ) { if (in_car == false) { if (keyboard_check(ord('W'))) y -= walk_speed; if (keyboard_check(ord('S'))) y += walk_speed; if (keyboard_check(ord('A'))) x -= walk_speed; if (keyboard_check(ord('D'))) x += walk_speed;
audio_sound_gain(snd_step, 0.1, 0); if(!audio_is_playing(snd_step)){ audio_play_sound(snd_step, 1, true); } } else { with (obj_car) { backride = false; friction = 0.2; if (keyboard_check(ord('W'))) { backride = false; speed = +obj_player.ride_speed; sprite_index = spr_car; } if (keyboard_check(ord('S'))) { backride = true; speed = -obj_player.ride_speed / 2; sprite_index = spr_car; } if (keyboard_check(ord('A'))) { sprite_index = spr_car_l; if (!backride) { direction += 2; } else { direction -= 2; } } if (keyboard_check(ord('D'))) { sprite_index = spr_car_r; if (!backride) { direction -= 2; } else { direction += 2; } } image_angle = direction; } } } else { audio_stop_sound(snd_step); }
// ВОЗЛЕ МАШИНЫ if (distance_to_object(obj_car) < 10) { act_msg = true; if (in_car == false) { act_msg_txt = "PRESS " + chr(34) + "F" + chr(34) + " FOR GET IN THE CAR"; } if (keyboard_check(ord('F'))) { in_car = true; //visible = false; } } else { act_msg = false; } // В МАШИНЕ if (in_car == true) { act_msg = true; act_msg_txt = "PRESS " + chr(34) + "X" + chr(34) + " FOR GET OUT FROM CAR"; view_object[0] = obj_car; obj_player.x = obj_car.x; obj_player.y = obj_car.y; if (keyboard_check(ord('X'))) { obj_player.x -= 40; in_car = false; //visible = true; view_object[0] = obj_player; } }
Я подозреваю, что координаты не меняются из-за того, что при движении в машине координаты не наращиваются(х += 10), а используется speed.
Сообщение отредактировал Code_Bryant - Вторник, 28 Февраля 2017, 14:01
Не расстраивайся Я работаю над графикой. Прикрасно понимаю, что сухой анимацией сыт не будешь и нужна реальная динамика. Все будет, но не все сразу. Игра пишется ручками, а не мышкой поэтому дольше чем это сейчас обычно бывает
Хорошо, что хоть автора графики указали) Некоторые всё присваивают себе. А по счет проекта - удачи.
Спасибо
Добавил файлы для скачивания, если кому-то интересно. Пока играть там особо невочто, но все же.
Добавлено (02 февраля 2015, 15:03) --------------------------------------------- Обновил файлы игры. Теперь там есть подобие меню и крутой саундтрек(как мне кажется), который отражает суть игры. Качайте, цените Жду ваших комментариев!
EvilT, Одна из главных задачь сделать все(персонажей, текстуры и прочее окружение) наиболее динамичными.
ЦитатаEvilT ()
Уже хочу пощупать, и посмотреть на анимацию.
В течении двух недель будет первая простейшая демка. Можно будет пощупать :)
Добавлено (01 февраля 2015, 19:20) --------------------------------------------- Добавил скриншот. Работаю над первой версией искуственного интеллекта.
Сообщение отредактировал Code_Bryant - Среда, 28 Января 2015, 01:03
Жанр игры: TDS с элементами RPG Движок: GameMaker: Studio Платформа: Windows Режимы игры: Одиночный Сроки разработки: конец 2017 Графика: Рам "Tatermand" Зоркот Отсальные ресурсы: Так же взяты с OpenGameArt