BrightSpot, черт , а я и не заметил , что глобальные переменные идут на следующие комнаты , тогда можно и так. (Я пока дальше первой комнаты не ушел еще и не заметил этого)
grem, 100500 раз уже говорилось: 1)Создать любой объект 2)Сделать его постоянным 3)Сделать в объекте игрока родителем первый объект. 4)Сделать переменные в постоянном объекте Например ХП=100 , Патроны=200 и т.д. - Все эти переменные перенесутся на игрока и отправятся в любую комнату. Объект родитель не должен иметь спрайт т.к. он будет во всех комнатах всегда. (Хотя можно и просто сделать постоянным объект игрока ,но может возникнуть какой-нить косяк , поэтому лучше сделать один постоянный объект со всеми постоянными переменными)
Малый вопрос о комнатах: Забивает ли память несколько постоянных комнат?(Например 10-20) Если да , то можно очистить комнату ,которая больше не будет использоваться далее?
Enderlorde, спрайты я беру из большой папки со спрайтами. О графике я думаю в последнюю очередь , сначала нужно программировать. Попробую дальше сделать атаку , без 5 фазы и Hud(он не трудный)и кину еще демку.
Добавлено (09.07.2013, 18:36) --------------------------------------------- Добавлена вторая демка , описание к ней выше. Дальше буду мучаться над 5 фазой... И попробую сделать ИИ
Да , но мне нужно остановить набор готовности , чтобы один объект походил , потом начал ходить другой , в случае когда готовность у них одинаковая. В результате один объект (Тот который ходит раньше) обгоняет первый , сначала на 1 пункт , потом на 2 и т.д. Вот такая проблема выходит ,и никак не удается решить=(
Код
if UnitSpeed[O]>=100 { global.Phase1=0 UnitSpeed[O]-=100 ds_queue_enqueue(global.turn2,O) }
Если поставить так , то юнит потеряет скорость , но в список не попадет. Если не поставить UnitSpeed[O]-=100 то юнит попадет в него бесконечное количество раз. Если поставить выше условие попадания , то попадет один , второй , третий , но начнет появляется разрыв в UnitSpeed[O] между ними , который постоянно будет увеличиваться.
Добавлено (08.07.2013, 21:38) --------------------------------------------- вот тут кроется корень зла : if global.Unit[O]=0 and global.Phase1=1 { UnitSpeed[O]+=D } Еще не все юниты со 100 ин. походили , а он уже добавляет инициативу тем , кто еще не походил , а тем кто еще ожидает хода инициативы не получают.
Добавлено (08.07.2013, 22:07) --------------------------------------------- Все я исправил=) Спасибо за помощь! Я сделал так:
Код
if UnitSpeed[O]>=100 { global.Phase1=0 {ds_queue_enqueue(global.turn2,O)}}
if global.Phase1=1 and global.Phase3=0 { UnitSpeed[O]+=D }
if global.Phase1=0 {
}
if O=ds_queue_dequeue(global.turn2) and global.next=1{ global.next=0 global.Unit[O]=1 global.Phase3=1 }
Ctrl:
Код
if global.Unit[O]=1{ global.Phase4=0 global.attack=0 global.Unit[O]=0 global.SunitX=-1 global.SunitY=-1 UnitSpeed[O]-=100 global.Phase3=0 mp_grid_add_rectangle(global.Moving_mpgrid,id.x-30,id.y-30,id.x+30,id.y+30) if ds_queue_size(global.turn2)=0 {alarm[0]=51 global.next=1} if ds_queue_size(global.turn2)>0 {global.next=1} }
Долго я себе голову ломал , но так и не удалось решить одну проблему.=(
Проблема заключается в том , что когда родитель одновременно заносит два любых значения в список или в очередь или куда-угодно , то заносится всегда только одно число , а второе выбрасывается. Как можно решить эту проблему?
Например:
Код
if UnitSpeed[O]>=100 and global.Phase1=1 //При некоторых условиях... { global.Phase1=0 ds_queue_enqueue(global.turn2,O) //Число или несколько чисел заносится в очередь , но заносится только одно }
Добавлено (08.07.2013, 02:07) --------------------------------------------- Многие исходники слишком тяжелые или незавершенные , а некоторые являются exe файлами ,то есть их осмотреть нельзя.
Через and Объект1: Step: Если объект 1 сталкивается с объектом 3 то global.1=1 else global.1=0 //В случае столкновения объявляем некую глобальную переменную единицей иначе она будет равна нулю Объект2: Step: Если объект 2 сталкивается с объектом 3 то global.2=1 else global.2=0 //В случае столкновения объявляем некую глобальную переменную единицей иначе она будет равна нулю Объект2:
3 объект ( Да вообще пофиг какой объект) Step: if vk_ord('F') and vk_ord('J') and global.1=1 and global.2=1 { //Если зажаты две клавиши , обе переменные равны единице то .. то конец комнаты } (Как-то так , я сейчас не у себя дома поэтому проверить не могу и узнать скрипт , он в гейм меркере сам появляется когда начинаешь вводить collision.)
как задать следующий вопрос ячейке? Если ближайший объект у которого есть родитель (PlayersParrent) то....
Опять , сам спросил-сам ответил... if point_distance(x+0,y+0,instance_nearest(x+0,y+0,PlayersParrent).x,instance_nearest(x+0,y+0,PlayersParrent).y)<32 {draw_sprite_ext(sprite_index,4,x,y,1,1,0,c_white,image_alpha)}
Блин ,вот как задать следующий вопрос ячейке? Если ближайший объект у которого есть родитель (Parrent_o) то.... Наверное ерунда , но у меня нифига не получается и на долгое соображение времени нету.(Спать нужно , а завтра с утра на работу)=(
Гмм... Столкунлся со следующей проблемой: Есть куча ячеек , и в ячейке стоит объект , я кликаю по ячейке (Это я умею) ,и мне надо узнать переменную O у стоящего там объекта и отправить ее какому нить объекту(Это я уже смогу).Как узнать чему равно O у некого объекта, и провести дальнейшие действия с этим объектом? (Все фигня , если бы не родитель!)
Добавлено (03.07.2013, 20:26) --------------------------------------------- Блин чего-то я опять туплю , я уже понял как.
С трубой это вообще фигня: Создаем спрайты: вздутия трубы и спрайт самой трубы Когда игрок входит в трубу , появляется объект вздутия и следует за игроком , а когда игрок уже близок к выходу из трубы , он исчезает. if collision_rectangle(id.x-24,id.y-24,id.x+24,id.y+24,object1,0,1) - выделяет трубу квадратиком , и если игрок этот квадратик пересекает , происходит действие , то есть появляется объект вздутия , а через else удаляется. object1- это игрок
Добавлено (03.07.2013, 18:53) --------------------------------------------- А также нужно сделать глубины , чтобы спрайт вздутия был выше трубы , а труба выше игрока.
Да , именно как тут.=) Покопавшись там , я выявил этот код: image_index=direction div 90*3+1 Он работает , правда иначе , но мне и так сойдет! Спасибо!
Жанр игры:[TRPG] На каком движке/конструкторе: Game maker В каком пространстве: 2D Какой вид в игре: сверху Какие есть похожие игры:Shining force Для какой платформы: PC Какой тип лицензии распространения:Не комерческая
Игра: На мир обрушилась тьма.Почти все , кто пытался ей противостоять - уже погибли.Города разрушены , а тех , кого еще не убили - все еще сражаются. Игру мы начинаем с 10 героями , каждый герой уникален , он обладает своим классом , будут также умения и особенности. Задача: двигаться по пути , и уничтожать всех врагов , которых мы встретим , до далекого пункта , через множество комнат и локаций. По пути нам будут встречаться разрушенные и пустые города , в городах можно немного задержаться , и собрать сундуки. В игре будут также боссы. Игрока заставит двигаться особая величина опасности , чем дольше мы стоим на месте , тем больше мобов к нам идет , более того мобы будут со временем тоже поднимать свои параметры, поэтому на месте лучше не задерживаться , а подгонять игрока будут очень сильные , но медленные мобы. Ход работы:
Сложность понимания проблемы я выделяю цветом. Сетка перемещения - готово Перемещение по сетке- готово Инициатива - готово Распознавание врагов и героев-готово Выбор действий после движения- почти готово Поворот спрайта во время движения по пути- готово Атака- готово Предметы-готово Магия - отчасти готова HUD-отчасти готов Начисление опыта , уровней и параметров -в процессе Графика-не тронуто ИИ Воин-готов ИИ Летун-готов ИИ Маг-готово ИИ Дальник-готово Сундуки-готово Локации- в процессе Респавн для игрока - отменено Классы - готово Умения - в процессе Дэбафы - готово Длительный каст- отменено Зона действий- отменено Фэйдинг- в процессе Босс- в процессе
На данный момент это все (Желтый цвет плохо виден ,и был заменен на синий)
Тут можно посмотреть перемещение по сетке нескольких персонажей с учетом инициативы(Зажать Space) , но в ней есть маленький косяк , но я потом сделаю по другому. 1 число - инициатива на данный момент 2 число - инициатива того , кто будет ходить. 3 число - номер того , кто будет ходить 4,5 неактивны , а по идее они должны работать , но скрипт не хочет одновременно заносить 2 числа(одно на первое место , а другое на второе ,а заносит оба на первое).
[spoiler]Исправлена проблема с инициативой Добавлена возможность атаки Добавлена таблица параметров того , кто ходит.(В углу) Добавлена возможность атаковать кликнув по себе , пропустив фазу движения Добавлена возможность пропустить ход (Ctrl) ИИ- пока не движется и постоянно пропускает свой ход , но по прежнему все объекты имеют одного родителя. Параметры пока у всех уравнены. Исправлены также , некоторые недостатки ранее.
Добавлена 5 фаза(Без спрайтов) Добавлен ИИ Возможности ИИ: 1)ИИ может двигаться к игроку , но только тогда , когда ему позволяет его количество шагов иначе пропускает ход. 2)ИИ способен определить свою любую дальность атаки от минимума до максимума и подстраивает свое движение под нее. 3)ИИ умеет атаковать также как и игрок. Немного изменены спрайты , но они временные. Вновь возникла проблема с инициативой. Кнопки: Ctrl- закончить ход Пробел-проверка запрещенных зон. Нажатие по юниту во время фазы движения - переход из фазы движения на фазу атаки. Правая кнопка мыши - двигать вид Скриншоты: Screen1
1)Новый ИИ летающий юнит 2)Новый игрок - рейнджер (или дальник) имеет уникальный способ атаки 3)Новый игрок - маг(Пока есть только магия огня и мана) 4)Улучшен ИИ - теперь ИИ способен найти игрока , если до него за 1 ход не добраться 5)Добавлена основа приоритетов-враг атакует летающих юнитов только по возможности , а во всех остальных случаях ему плевать на них и он идет на других. 6)Улучшен Худ - теперь есть выбор действий после хода , а также личный худ в углу экрана и худ врага при наведении на него. 7)Замедленна инициатива. 8)Добавлен поворот спрайта во время движения(Только у двух) 9)Убрана 5 фаза - теперь способ атаки другой 10)Добавлен случайный выбор цели (Раньше враг бил всегда ту цель , которая выше) В остальном графика особо не тронута..
1)Добавлена отмена движения(Вернуться назад) 2)Добавлена новая магия - лечение 3)Добавлен новый враг - стрелок 4)Добавлен новый эффект магии синего огня. 5)Добавлены респавны мобов 6)Добавлена величина опасности(Число возле мышки) 7)Добавлена примитивная система повышения уровня , получения опыта . 8)Добавлен туман войны или темнота. 9)Добавлено повышение опасности мобов , то есть они будут повышать свои параметры соответствуя уровню опасности. 10)Исправлена ошибка определения ближайшего объекта для ИИ. 11)Добавлены примитивные анимации атаки для двух воинов.(Их осталось только заменить) 12)Исправлены лаги , которые постоянно появлялись и все портили.(Вроде вообще все) 13)Добавлена регенерация. Пока наверное все...Многое изменил все не упомнить...
Не не. Есть сетка , в центре сетки стоит игрок. Под скриптом создается путь и когда я щелкаю мышкой , игрок двигается туда.(как в героях) И во время пути он должен поворачивать свой спрайт в 4 стороны 90,0,180,270.
Добавлено (02.07.2013, 17:09) --------------------------------------------- Вот двигался бы он через обычный мов товардс , то скрипт с дирекцией бы прокатил , но я использую пути. Пути изначально пустые , но они сами достраиваются.