Четверг, 19 Декабря 2024, 06:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема с управлением
михаДата: Вторник, 01 Ноября 2011, 17:12 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Quote
if keyboard_check(ord("W"))
and shift=0
and collision_point(x,y-10,obj_block,1,1)<1
{y-=4}

if keyboard_check(ord("S"))
and shift=0
and collision_point(x,y+10,obj_block,1,1)<1
{y+=4}

if keyboard_check(ord("A"))
and shift=0
and collision_point(x-10,y,obj_block,1,1)<1
{x-=4}

if keyboard_check(ord("D"))
and shift=0
and collision_point(x+10,y,obj_block,1,1)<1
{x+=4}


Очень странно. У меня никогда не возникало проблем, связанных с управлением персонажа в TDS. А сейчас я вынужден изменить управление, и изменя его получил такую фигню: игрок слишком поздно останавливается перед obj_block, входит внутрь блока до самого центра спрайта.
LunarPixelДата: Вторник, 01 Ноября 2011, 17:16 | Сообщение # 2
старожил
Сейчас нет на сайте
У тебя везде коллизия проверяется со сдвигом на 10, а ты учел размер спрайта?! т.е. если у тебя точка отсчета спрайта в позиции 0:0, а спрайт размером 32 на 32, то вправо и вниз смещение на 10 даст точку в позиции 22, которая находится на самом спрайте игрока, а не за его приделами. smile

михаДата: Вторник, 01 Ноября 2011, 17:42 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
LunarPixel, поставил 20. То же самое, разве что игрок, приближаясь к препятствию немного снижает скорость.
LunarPixelДата: Вторник, 01 Ноября 2011, 17:44 | Сообщение # 4
старожил
Сейчас нет на сайте
миха, размер спрайта героя у тебя какой?

михаДата: Вторник, 01 Ноября 2011, 18:03 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
LunarPixel, все с этим разобрался, там проблема была в другом. Ответь пожалуйста на другой вопрос:
У меня есть пуля, и есть танк. Эта пуля должна удаляться только при столкновении с тем танком, в котором нет игрока (переменная in_tank в таком танке имеет значение 0).И тут вот такая проблема:яв событии collision у танка прописал код типа этого:
Quote
if in_tank=0
with other
{instance_destroy()}

И теперь пуля при выстреле застрявает в танке, и танк не может ехать, хотя должна лететь дальше. (танк твердый, а пуля нет).
LunarPixelДата: Вторник, 01 Ноября 2011, 18:07 | Сообщение # 6
старожил
Сейчас нет на сайте
миха, если ставишь в событие столкновения код, то столкновение начинает работать с твердыми объектами. Можешь сначала рисовать пулю, а когда она выходит за пределы танка, то тогда делать её объектом. Можешь при выстреле делать танк не твердым, пока пуля не пролетит. Можешь просто пулю создавать дальше танка, или уменьшить у танка маску. smile

михаДата: Вторник, 01 Ноября 2011, 18:16 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Quote
Можешь сначала рисовать пулю, а когда она выходит за пределы танка, то тогда делать её объектом

Если честно, не знаю как это сделать, можно код?
LunarPixelДата: Вторник, 01 Ноября 2011, 18:23 | Сообщение # 8
старожил
Сейчас нет на сайте
Попробуй создать объект пули без спрайта. А в событии Draw рисуй спрайт пули, через draw_sprite(sprite,0,x,y)
Так же при создании пули запускай alarm на секунду, например. И когда эта секунда истечет, тогда через sprite_index ставь пули спрайт. smile


михаДата: Вторник, 01 Ноября 2011, 19:07 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
LunarPixel, не получается :(! Попроще никак сделать не получиться?
LunarPixelДата: Вторник, 01 Ноября 2011, 19:13 | Сообщение # 10
старожил
Сейчас нет на сайте
миха, вот примерчик: http://zalil.ru/31975707

Всё работает, а если сразу поставить на объект пули спрайт пули, то пуля не пролетит через квадратик.


михаДата: Пятница, 04 Ноября 2011, 08:30 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
LunarPixel, ага. Все вроде бы ясно. Не знаю что у меня могло не получиться НО: дело в том, что object0 у меня в комнате много. Я прописал в коллизион у пули с object0 удаление, и все работает только на больших дистанциях. Нельзя ли вместо аларма сделать другую проверку? Я поонимаю, что можно уменьшить аларм до такой степени, что пуля получит спрайт прямо около object0, но тогда стоит object0 немного двинуться в сторону пули, и она удалиться. Вот.
LunarPixelДата: Пятница, 04 Ноября 2011, 08:50 | Сообщение # 12
старожил
Сейчас нет на сайте
миха, ну тогда убери аларм и в степе у пули проверяй расстояние до породившего её танка, если оно больше определенного значения, тогда ставим пуле спрайт. smile

михаДата: Пятница, 04 Ноября 2011, 11:28 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
LunarPixel, юзать idы?
LunarPixelДата: Пятница, 04 Ноября 2011, 11:29 | Сообщение # 14
старожил
Сейчас нет на сайте
миха, ну да smile

михаДата: Пятница, 04 Ноября 2011, 13:40 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
LunarPixel, спс
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг