Смена спрайта в зависимости от значения переменной
|
|
Cmaujluk | Дата: Четверг, 10 Апреля 2014, 01:41 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Привет! Есть некая переменная value=[1..1000] и предположим 1000 спрайтов. Как можно реализовать отображение спрайта в зависимости от значения переменной? Пробовал пронумеровать спрайты s1,s2,s3... и что-то вроде Код sprite_index = 's' + string(value); Не получилось... Прописывать Код if value == 1 then { sprite_index=s1; { Не вариант так как спрайтов много. Знает кто что тут можно придумать?
Не жадный на плюсы. Наши проекты: Clicker Mine Mania 2 - Увлекательный кликер в стиле Minecraft Angry Bee Evolution - Эволюция с элементами кликера Чего не хватает? - Викторина на логику"
Сообщение отредактировал Cmaujluk - Четверг, 10 Апреля 2014, 01:41 |
|
| |
ErrantBug | Дата: Четверг, 10 Апреля 2014, 10:42 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Индекс спрайта - значение числовое, соответственно и задается только цифрами. Запомните это! Максимум, что вы можете в данной ситуации сделать - создать массив и вручную заполнить его спрайтами, дабы потом легко к нему обращаться. Перевод строки в число с индексом спрайта технически невозможен, ибо во время компиляции все названия спрайтов как бы выпадают из программы. Хотя, возможно, какая-то лазейка есть.
Сообщение отредактировал ErrantBug - Четверг, 10 Апреля 2014, 10:42 |
|
| |
zzzzza | Дата: Четверг, 10 Апреля 2014, 13:49 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Cmaujluk, ну можно все в один спрайт запихнуть и когда тебе нужно сменить на другой индекс, пишешь "image_index=value". Если тебе нужно поменять спрайт, то можешь сделать так, как предложил ErrantBug или так: Код switch (value) { case 0: sprite_index=spr_player1; break;
case 1: sprite_index=spr_block; break; ... } Или если будешь делать таким способом, легче будет назвать все спрайты числами "spr_1". И тогда можно будет сделать так: Код switch (value) { ll='spr_'+string(value); case 0: sprite_index=ll; break;
case 1: sprite_index=ll; break; ... }
Сообщение отредактировал zzzzza - Четверг, 10 Апреля 2014, 13:50 |
|
| |
|
XDominator | Дата: Пятница, 11 Апреля 2014, 09:31 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Баг, ты попутал sprite_index который имя и image_index, который номер картинки в спрайте
ПО теме - можно объединить все в 1 спрайт и пользоваться image_index. Но самый простой вариант как предложили в посте выше. Инициализацию массива вынести в отдельный скрипт чтоб не мешалось и все.
Ghaarp
The soul lighter(Android, logic)
Zzzzombie RAGE!!!(For android)
|
|
| |
ErrantBug | Дата: Пятница, 11 Апреля 2014, 11:22 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Цитата XDominator ( ) Баг, ты попутал sprite_index который имя и image_index, который номер картинки в спрайте Молчал бы, коль не заешь)) На самом деле sprite_index тоже задается числом. Ты можешь даже проверить это, написав draw_text(x,y,<спрайт>). Имя спрайта - это всего лишь "условность" для более удобной работы.
|
|
| |
MadDoctor | Дата: Пятница, 11 Апреля 2014, 12:03 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| единственный адекватный способ это один спрайт и менять image_index
|
|
| |