Как увеличить размер объекта
| |
vampir0305 | Дата: Пятница, 21 Августа 2015, 22:09 | Сообщение # 1 |
Unity C# Programmer
Сейчас нет на сайте
| Как программно увеличить размер объекта и спрайта одновременно. Тоесть есть player(халк) он сталкивается с едой тоесть ест и увеличивается, но при этом маска столкновений увеличивалась тоже с халком и качество изображения оставалось хорошим при увеличении. Про качество изображения - можно попробовать взять большое изображение хорошего качества и уменьшить его при создании, а когда надо - увеличить.
Помогите плиз.
Красочная сюжетно-ориентированная игра-головоломка
|
|
| |
55stas55 | Дата: Пятница, 21 Августа 2015, 22:36 | Сообщение # 2 |
участник
Сейчас нет на сайте
| хм...я думаю тут уместнее будет сделать так,чтоб при взятии еды полностью заменять спрайт игрока и маску столкновений....сделать просто допустим несколько спрайтов разных размеров,и вуаля...
|
|
| |
hero564 | Дата: Пятница, 21 Августа 2015, 23:19 | Сообщение # 3 |
Made in Ukraine
Сейчас нет на сайте
| vampir0305, используй Код image_xscale image_yscale значение 1.0 это стандартный размер, 2.0 в два раза больше, 0.5 в два раза меньше
Сообщение отредактировал hero564 - Суббота, 22 Августа 2015, 11:59 |
|
| |
TLT | Дата: Пятница, 21 Августа 2015, 23:21 | Сообщение # 4 |
Сейчас на сайте
| Можно продублировать персонажа, сделав 2 варианта. При событии один удалять, а другой вызывать.
Дао, выраженное словами, не есть истинное Дао.
|
|
| |
minepecraft | Дата: Суббота, 22 Августа 2015, 09:08 | Сообщение # 5 |
участник
Сейчас нет на сайте
| Вариантов много,image_xscale,image_yscale ,создавать объекты с разными объектами,draw_sprite(_ext)и т.д.
|
|
| |
vampir0305 | Дата: Суббота, 22 Августа 2015, 10:21 | Сообщение # 6 |
Unity C# Programmer
Сейчас нет на сайте
| Замена спрайта не походит, т.к у меня постепенное вырастание персонажа степень которого хранится в переменной. draw_sprite_ext не хочет работать. Подскажите, как сделать чтобы было так: Код image_xscale = global.size image_yscale = global.size куда это вписать? Я так пробовал записать и в Draw и в Step, но ничего не работает. У меня изображение 512x512 при создании спрайта я его уменьшаю до 16x16 и при съедании еды спрайт увеличивается, тоесть global.size в начале равна 16, а потом всё больше и больше! Помогите плиз!
Красочная сюжетно-ориентированная игра-головоломка
|
|
| |
Леонид | Дата: Суббота, 22 Августа 2015, 10:27 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Цитата vampir0305 ( ) куда это вписать? Я так пробовал записать и в Draw и в Step, но ничего не работает. У меня изображение 512x512 при создании спрайта я его уменьшаю до 16x16 и при съедании еды спрайт увеличивается, тоесть global.size в начале равна 16, а потом всё больше и больше! Помогите плиз! Я бы не стал изменять размер спрайта в 16 раз, это ужасно выглядит. Лучше иметь несколько спрайтов и каждый для определенного диапазона global.size. image_xscale=1 - стандартный размер, image_xscale=2 - в 2 раза больше по горизонтали, image_xscale=0.5 - в два раза меньше по горизонтали, если у тебя она равна 16 изначально, то спрайт должен быть в 16 раз больше изначально. Тебе так нужно? Не уверен, но вроде бы это должно в степе работать. Ты сказал, что уменьшаешь спрайт, так он у тебя все-таки уменьшается?
|
|
| |
vampir0305 | Дата: Суббота, 22 Августа 2015, 11:55 | Сообщение # 8 |
Unity C# Programmer
Сейчас нет на сайте
| Леонид, Не совсем так! У меня имеется спрайт разрешение 512x512! При создании игрока прописывается значение переменной 16 и получается размер спрайта зависит от этой переменной! Тоесть в начале я его делаю из большого маленьким! И при поедании еды увеличиваю размер!
Добавлено (22 августа 2015, 11:55) --------------------------------------------- Если что, я сделал вот так: Создал спрайт игрока, сделал спрайт квадрата 32x32! Спрайт квадрата прикрепил к объекту игрока(как маска), а сам спрайт игрока сделал вот так: Код draw_sprite_stretched(spr_player,0,x,y,global.size,global.size) Это в Draw игрока! Спрайт увеличивается при поедании, но маска остаётся 32x32, если сделать объект без спрайта то столновения не будут происходить, что делать?
Красочная сюжетно-ориентированная игра-головоломка
Сообщение отредактировал vampir0305 - Суббота, 22 Августа 2015, 12:03 |
|
| |
hero564 | Дата: Суббота, 22 Августа 2015, 12:04 | Сообщение # 9 |
Made in Ukraine
Сейчас нет на сайте
| vampir0305, Цитата vampir0305 ( ) куда это вписать? Я так пробовал записать и в Draw и в Step, но ничего не работает. У меня изображение 512x512 при создании спрайта я его уменьшаю до 16x16 и при съедании еды спрайт увеличивается, тоесть global.size в начале равна 16, а потом всё больше и больше! Помогите плиз! писал же Цитата hero564 ( ) значение 1.0 это стандартный размер, 2.0 в два раза больше, 0.5 в два раза меньше
значение указывается не в пикселях, а в коофициенте, то есть если у вас есть спрайт 512 а вам нужно чтоб был 16, то вам нужно установить значение весь код должен работать так: в Step Код image_xscale = global.size/512 image_yscale = global.size/512
|
|
| |
vampir0305 | Дата: Суббота, 22 Августа 2015, 12:37 | Сообщение # 10 |
Unity C# Programmer
Сейчас нет на сайте
| hero564, Спасибо огроменное! Добавлено (22 августа 2015, 12:37) --------------------------------------------- 0У меня тут-же возник ещё один вопрос!
Как сделать чтобы при увеличении объекта камера отдалялась, а при уменьшении приближалась! То есть если объект маленький то камера близко, а если объект большой то камера дальше!
Красочная сюжетно-ориентированная игра-головоломка
|
|
| |
hero564 | Дата: Суббота, 22 Августа 2015, 12:48 | Сообщение # 11 |
Made in Ukraine
Сейчас нет на сайте
| vampir0305, здесь надо использовать виды(view) view_wview - ширина вида view_hview - высота вида значения указываются в пикселях можно в step вставить:
Код max_view_witdh=1024//максимальная ширина вида
view_wview=global.size/512*max_view_width view_hview=global.size/512*max_view_width*0.75
Сообщение отредактировал hero564 - Суббота, 22 Августа 2015, 12:49 |
|
| |
minepecraft | Дата: Суббота, 22 Августа 2015, 12:49 | Сообщение # 12 |
участник
Сейчас нет на сайте
| vampir0305, используй view_wview - ширина вида, view_hview - высота вида,ну и приравнивай,если у игрока такой-то размер,увеличиваем на столько-то..
|
|
| |
vampir0305 | Дата: Воскресенье, 23 Августа 2015, 09:23 | Сообщение # 13 |
Unity C# Programmer
Сейчас нет на сайте
| Всем привет! У меня возникла проблемка! Теперь когда я съедаю еду и при этом нахожусь близко к стене, то я увеличиваюсь в размере(в принципе как и нужно) и при этом застреваю в этой стене! Что делать?
Красочная сюжетно-ориентированная игра-головоломка
|
|
| |
Madeline | Дата: Воскресенье, 23 Августа 2015, 10:00 | Сообщение # 14 |
частый гость
Сейчас нет на сайте
| vampir0305, можешь использовать place_free и либо двигать персонажа, либо просто не давать подойти к стене.
|
|
| |
vampir0305 | Дата: Воскресенье, 23 Августа 2015, 10:32 | Сообщение # 15 |
Unity C# Programmer
Сейчас нет на сайте
| Madeline, place_free я пробовал, ерунда получается! Или я что-то не так делаю! А не давать подойти к стене нельзя!(в моём случае)
Красочная сюжетно-ориентированная игра-головоломка
Сообщение отредактировал vampir0305 - Воскресенье, 23 Августа 2015, 10:33 |
|
| |
Quad69 | Дата: Понедельник, 24 Августа 2015, 00:40 | Сообщение # 16 |
заслуженный участник
Сейчас нет на сайте
| В объекте который застревает можно написать такой код: (При столкновении со стеной или шаг) Код while !place_free(x,y) { var n=instance_nearest(x,y,объект_стены); if x>n.x {x+=1} if x<n.x {x-=1} if y>n.y {y+=1} if y<n.y {y-=1} } P.s Мой способ не очень, но мало ли, вдруг подойдёт.
|
|
| |
vampir0305 | Дата: Понедельник, 24 Августа 2015, 08:21 | Сообщение # 17 |
Unity C# Programmer
Сейчас нет на сайте
| maksim1221232, не сработало(
Красочная сюжетно-ориентированная игра-головоломка
|
|
| |
Леонид | Дата: Понедельник, 24 Августа 2015, 10:45 | Сообщение # 18 |
постоянный участник
Сейчас нет на сайте
| Я не очень представляю, как это должно работать вообще. Если игрок увеличивается находясь в углублении (с двумя стенками по бокам), которое меньше его размеров, он должен "вытолкнуться" наверх? Где у тебя origin у спрайта находится (не знаю как по-русски назвать этот параметр)? Я бы разместил его по центру снизу, так игрок точно не застрянет в платформах под ним.
|
|
| |
Quad69 | Дата: Понедельник, 24 Августа 2015, 10:46 | Сообщение # 19 |
заслуженный участник
Сейчас нет на сайте
| Хм, пробуй тогда так: Код while !place_free(x,y) { var n=instance_nearest(x,y,объект_стены); x+=lengthdir_x(1,point_direction(n.x,n.y,x,y)) y+=lengthdir_y(1,point_direction(n.x,n.y,x,y)) }
|
|
| |
|