Суббота, 23 Ноября 2024, 00:30

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как увеличить размер объекта
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, то вам нужно установить значение
Код
xscale=16/512

весь код должен работать так:
в 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))
}
  • Страница 1 из 1
  • 1
Поиск:

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