Пятница, 29 Ноября 2024, 04:15

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Подставление спрайтов
IroNNДата: Пятница, 21 Января 2011, 16:22 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Вот у меня спрайт человека. Допустим я покупаю ему шапку, у него забираются монеты и на голову прикрепляется спрайт. Как так сделать? Я вот думал как: покупаю, забираю деньги, и создаю переменную. А в создании проверяю переменную, если совпадает то рисую спрайт. Код тоже знаю, но может как то оптимизировать можно? Просто у меня будет около 15 шапок, и еще татуировки и т.д, как то около 50 переменных не охота делать.

пол года учил GML. GameMaker отказывается теперь работать на моем компе...
Здравствуй Construct!
Dva_KotaДата: Пятница, 21 Января 2011, 16:33 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Можно сделать несколькими объектами, но не знаю будет ли это лучшим решением (скорее наоборот).
Есть еще один вариант. Сейчас почитаю справку и расскажу. wink

Добавлено (21.01.2011, 16:33)
---------------------------------------------
Оптимальный способ, думаю, такой:
Создаешь кучу спрайтов ("голый" игрок", куча разных "шапок", "штанов" и т.д.). Когда тебе нужно "одеть" игроку шапку выполняешь следующие действия:
Берешь поверхность, на нее рисуешь спрайт игрока, потом, сверху, спрайт шапки. Затем создаешь новый спрайт из этой поверъхности с помощью функции

Quote
sprite_create_from_surface(id,x,y,w,h,removeback,smooth,xorig,yorig) Создает спрайт, скопировав данную область с указанного сурфейса. removeback указывает, следует ли сделать все пиксели с цветом фона (левый нижний пиксель) прозрачным. smooth указывает на гладких границ. Эта функция дает возможность создавать любые спрайты, какие Вам потребуются. Нарисуйте изображение на сурфейс с помощью функций рисования и в дальнейшем создайте спрайт из него. Эта функция возвращает индекс нового спрайта. Обратите внимание, что значения альфа прозрачности тоже сохраняются в спрайт.

Ставишь этот спрайт игроку. То же самое можно делать с остальными вещами. Только не забывай удалять спрайты которые были созданы раньше (например одел игроку красную шапку, потом одеваешь синюю, а спрайт "игрок в красной шапке" удаляешь). Надеюсь принцип понятен.


Новый пример инвентаря! /20.06.2012/

Energy Wars
BrightSpotДата: Суббота, 22 Января 2011, 12:07 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
IroNN у тебя способ практически такой каким я пользуюсь...только зачем создавать переменную каждый раз при смене шапки???Ведь можно зделать 1 переменную Head где менять значение...и в проверке сверяясь со значением переменной уже рисовать спрайт...


Более мощный компьютер глючит быстрее и точнее.
IroNNДата: Суббота, 22 Января 2011, 13:01 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Все равно придется проверять много. Допустим 20 шапок. Т.е head от 1до20. Следовательно каждую цифру проверять и рисовать. Это ресурсоемко. Пожалуй возьму вариант два кота. Буду с компа - плюсану.

пол года учил GML. GameMaker отказывается теперь работать на моем компе...
Здравствуй Construct!
  • Страница 1 из 1
  • 1
Поиск:

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