времени мало, по тому что скоро, возможно, наступит конец света (в самом прямом смысле этого слова)... Нужно что-то с этим делать...
XDDDDDD
Quote (Dva_Kota)
можешь скинуть, но я не знаю когда у меня будет время посмотреть. Исправлять что-то в ближайшее время точно времени не будет, может-быть смогу что-то посоветовать.
Мне бы сначала с кодом разобраться... Оказывается, все еще хуже, чем я думал. Моб проходит сквозь твердые предметы, останавливается около перса, чтобы отнимались жизни нужно на него наступить... Посоветуйте, где скачать VB6 :C
Моб двигается при помощи mp_potential_step_object(go_to_player.x,go_to_player.y,speed_defolt,obj_building_mask_base) и обходит предметы obj_building_mask_base или сделай для всех объектов, которые он должен объодить, один родительский и напили его сюда, или используй вместо функции mp_potential_step_object() функцию mp_potential_step()
А про конец света я серьезно. Я занимаюсь учетом электроэнергии если вовремя не сделаю свою работу - отключат свет. :)
Да я понял) Кстати, понял про конец света сразу.
Quote (Dva_Kota)
обходит предметы obj_building_mask_base
То есть, чтобы он обходил твердые объекты, мне нужно это заменить на мой твердый объект?
Добавлено (27.12.2010, 14:18) --------------------------------------------- Все, спасибо, осталось только смену спрайта сделать. Расскажи мне подробнее про ту функцию.
То есть, чтобы он обходил твердые объекты, мне нужно это заменить на мой твердый объект?
Если у тебя только один объект, который нужно обходить, то да. Если несколько, сделай один объект с любым именем, напиши его имя вместо obj_building_mask_base и сделай родительским для всех остальных. Если нужно чтобы обходил ВСЕ твердые предметы - замени эту функцию на mp_potential_step() (она почти такая же, подробнее почитай в справке).
А что подробнее рассказать? Что именно не понятно (я просто не знаю что еще добавить к тому что я писал выше...) Можешь еще про switch в справке прочитать.
А, ну наверное я забыл написать что
Code
case 0: sprite_index=sp_ai_01_anim_00; // если получили 0 ставим спрайт с именем sp_ai_01_anim_00 case 1: sprite_index=sp_ai_01_anim_01; // если получили 1 ставим спрайт с именем sp_ai_01_anim_01
switch round(direction/45) { case 0: sprite_index=sp_ai_01_anim_00; break; case 1: sprite_index=sp_ai_01_anim_01; break; case 2: sprite_index=sp_ai_01_anim_02; break; case 3: sprite_index=sp_ai_01_anim_03; break; case 4: sprite_index=sp_ai_01_anim_04; break; case 5: sprite_index=sp_ai_01_anim_05; break; case 6: sprite_index=sp_ai_01_anim_06; break; case 7: sprite_index=sp_ai_01_anim_07; break; case 8: sprite_index=sp_ai_01_anim_00; break; }
Вычисляется выражение direction/45 округляется до целой части функцией round() В зависимости от полученного числа выбираем при помощи оператора switch.
Тебе не понятно как работает switch или не понятно зачем вычислять direction/45?
у тебя нет спрайта sp_ai_01_anim_03 там, в этом списке, спрайты расположены в порядкк "против часовой стрелки". первый спрайт (sp_ai_01_anim_00)-повернут вправо, второй (sp_ai_01_anim_02) -45 градусов против часовой стрелки, третий (sp_ai_01_anim_03)-90 градусов. и так для восьми направлений. Если у тебя спрайты только для четырех направлений - убери лишние строки, начиная с case 5 (но будет выглядеть не очень) Новый пример инвентаря! /20.06.2012/