Ошибки нету , просто скрипт не срабатывает. Возможно не создается список или он не заносится или не удается сравнить число с переменной. Но в скрипте у меня все в порядке , проблемы могут заключаться только в тех строках. ds_list_add(global.turn,UnitSpeed[O] - работает точно , потому что вместе с ним срабатывает и переменная(Ну я могу ее увидеть через Draw) if UnitSpeed[O]=ds_list_find_value(global.turn,1){global.Unit[O]=1 } - не срабатывает , переменная global.Unit[O]=1 не работает. (Через клавиши изменял эту переменную и она оказалась правильной, значит с ней все должно быть в порядке) global.turn=ds_list_create()-создается в другом объекте в Create , возможно и является проблемой ds_list_find_value(global.turn,1)- Draw говорит , что это число всегда равно нулю , значит возможно в список число не заносится.
Есть два объекта - первый стоит на координатах х = 45, у = -10, а второй х = 45, у = 10. При нажатии на объект что находится на координате (45;10) происходит создания других объектов, а при нажатии на второй той же самый объект но из координатами (45;-10) создание не происходит в чем проблема??? TEST => Мои игры: Kill your brain Space Conflict Zombie Day Bounce PC Extra ball 2012
Это спасибо в карман не положишь, а в репутацию можно. +1
Ошибки нету , просто скрипт не срабатывает. Возможно не создается список или он не заносится или не удается сравнить число с переменной. Но в скрипте у меня все в порядке , проблемы могут заключаться только в тех строках. ds_list_add(global.turn,UnitSpeed[O] - работает точно , потому что вместе с ним срабатывает и переменная(Ну я могу ее увидеть через Draw) if UnitSpeed[O]=ds_list_find_value(global.turn,1){global.Unit[O]=1 } - не срабатывает , переменная global.Unit[O]=1 не работает. (Через клавиши изменял эту переменную и она оказалась правильной, значит с ней все должно быть в порядке) global.turn=ds_list_create()-создается в другом объекте в Create , возможно и является проблемой ds_list_find_value(global.turn,1)- Draw говорит , что это число всегда равно нулю , значит возможно в список число не заносится
Проблему решил сам , оказалось, что в самом верху списка стоит число 0 ,а не 1 - вот и весь прокол... Вот тут - ds_list_find_value(global.turn,1) ,а должно быть ds_list_find_value(global.turn,0)
Добавлено (30.06.2013, 08:27) --------------------------------------------- Еще одна проблема... Почему в родитель не добавляет в списки второе число!? Step: (родитель)
Код
if global.Phase1=1 { if UnitSpeed[O]>=100 { ds_list_add(global.turn,UnitSpeed[O]) ds_list_add(global.turn2,O) global.Phase1=0 } if UnitSpeed[O]<100 { UnitSpeed[O]+=D } }
В списке я вижу только первое ,а он должен был внести 2 одинаковых числа от двух юнитов так, как у них одинаковое число D и UnitSpeed[O] (Проблема заключается в том, что юнит 1 очень далеко убегает по скорости от второго , когда скорость у них одинаковая!)
Хай всем. Почему при работе функции move_contact_solid объект (патрон) доходит до твердого объекта и останавливается, а событие столкновения не срабатывает? Просто, если противник стоит, то все пули остаются около него.
И при столкновении с твердыми объектами просто добавил кнопку с корзиной, чтобы пулю удаляло. Но если объект неподвижен, как например стена, или просто стоящий на месте враг, то столкновения не происходит, а пуля тормозит.
Sanchez06, как же я задолбался=) move_contact_solid(direction,30); - дело в этом коде! Может попробовать использовать другой код? Например: speed=20 //Всегда действующая скорость direction=0 //Дирекция , можно сделать так direction=point_direction(x,y,mouse_x,mouse_y) -стреляет туда где курсор или direction=player.direction - стреляет туда , куда направлен спрайт игрока (Вроде так , но не уверен)
arkady, вероятно нужно для этого использовать физический движок. Для каждого типа мотора делаешь свою силу в свою сторону. Ставишь разные материалы. Попробуй ExtremePhysics, может и понравится.
Добавлено (30.06.2013, 12:24) --------------------------------------------- Krosos, Я выбрал именно move_contact_solid(direction,60); потому что при обычном движении, на скорости больше 16, пуля может взять и просто перепрыгнуть через объект. Пуля нужна быстрая)
arkady, вероятно нужно для этого использовать физический движок. Для каждого типа мотора делаешь свою силу в свою сторону. Ставишь разные материалы. Попробуй ExtremePhysics, может и понравится.
Ну тогда я вот ,что намутил... move_contact_solid(direction,60) if collision_rectangle(id.x-24,id.y-24,id.x+24,id.y+24,object1,0,1){ //Выделяем пулю прямоугольником ,48 на 48 ,и если этот прямоугольник задевает объект 1 , то пуля удаляется. instance_destroy() }
Допустим мы играем в игровой комнате space1_r кончились патроны нажимаем кнопку и заходим в комнату meny1_korab_r делаем покупку и выходим возвращаемся в то место с которого вошли ! Так же и во всех остальных комнатах должно быть вышел в меню сделал покупку нажал кнопку и вернулся обратно в игровой процесс ! Подскажите как это все реализовать попонятней !!
Сообщение отредактировал sayran - Воскресенье, 30 Июня 2013, 14:20
Krosos, В справке есть функция, проверяющая наличие переменной, как локальной, так и глобальной. Название функции не помню, поэтому посмотри в справке. Пишешь:
Код
with (all) { if (distance_to_object(other) <= 250 && функцияПроверкиНаличияПеременной(имя)) { //выполняешь какие-либо действия } }