Пятница, 15 Ноября 2024, 19:51

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
pelmenkaДата: Понедельник, 12 Августа 2013, 19:48 | Сообщение # 4141
Драгоценный Тунеядец
Сейчас нет на сайте
Krosos, у тебя после паузы действие продолжаться не будет. Ты со скобками намудрил.
Код

if deystvie=1 { //Если действие идет
timer+=1 //Прибавляем таймер +1 каждый шаг
if timer = 30 { timer=0 deystvie=0 pausa=1} // Если таймер достиг 30 шагов(1 секунда или пол секунды при фпс 60) то начинается пауза.   
if pausa=1 { //Если пауза идет   
timer+=1   
if timer = 60{ timer=0 deystvie=1 pausa=0}} //продолжаем действие

Правильнее выглядит так:
Код

timer+=1 //можно сразу прибавлять таймер, избавимся от лишнего кода
if action=1 //Я против переменных написанный транслитом!
{
if timer=30 {timer=0 action=0} //если таймер = 30, ставим действие в 0
}
else //т.к. pause была активна только в то время, когда deystvie было не активно, будем проверять deystvie
{
if timer=60 {timer=0 action=1}  
}

Хоть я и не знаю гамака, но так выглядит куда логичней
P.S. А еще я бы заменил timer+=1 на timer++ и if action=1 на просто if action, но незнаю, будет ли так правильно sad


Сталина в каждый дом!

Сообщение отредактировал pelmenka - Понедельник, 12 Августа 2013, 20:00
KrososДата: Понедельник, 12 Августа 2013, 19:55 | Сообщение # 4142
постоянный участник
Сейчас нет на сайте
А точно , я блок не закрыл.
if deystvie=1 { //Если действие идет
timer+=1 //Прибавляем таймер +1 каждый шаг
if timer = 30 { timer=0 deystvie=0 pausa=1}} // Если таймер достиг 30 шагов(1 секунда или пол секунды при фпс 60) то начинается пауза.
if pausa=1 { //Если пауза идет
timer+=1
if timer = 60{ timer=0 deystvie=1 pausa=0}}

Добавлено (12.08.2013, 19:55)
---------------------------------------------
pelmenka, все остальное работает!Я только-что проверил!





Мой проект


Сообщение отредактировал Krosos - Понедельник, 12 Августа 2013, 19:55
pelmenkaДата: Понедельник, 12 Августа 2013, 20:00 | Сообщение # 4143
Драгоценный Тунеядец
Сейчас нет на сайте
Я отредактировал сообщение, прочитай его :3

Сталина в каждый дом!
KrososДата: Понедельник, 12 Августа 2013, 20:05 | Сообщение # 4144
постоянный участник
Сейчас нет на сайте
pelmenka, это правильно только в том случае , если код не будет дополняться.
Он может уйти на третье действие , у него же там, наверное, не только это.
В таком случае таймер улетает в небеса.





Мой проект
pelmenkaДата: Понедельник, 12 Августа 2013, 20:08 | Сообщение # 4145
Драгоценный Тунеядец
Сейчас нет на сайте
Krosos, насколько я понял из поста beril, третьего действия не будет

Сталина в каждый дом!
KrososДата: Понедельник, 12 Августа 2013, 20:12 | Сообщение # 4146
постоянный участник
Сейчас нет на сайте
pelmenka, ну не важно , главное , чтобы он понял вот такой способ таймера.
Аларм и такой способ оба хороши , но в разных ситуациях.
Аларм работает только для одного шага действий , а мой способ работает для постоянных шагов.





Мой проект
MadMaxДата: Понедельник, 12 Августа 2013, 20:20 | Сообщение # 4147
\o
Сейчас нет на сайте
Замутите проверку столкновений. Если объект А на объекте В - выполняем действие ( ну тут понятно, Collisions и пишем код), если объект А ушел с Объекта В - выполняем другое действие (тут не понятно).
ПС: Объектов В на сцене неограниченное количество. т.е тут с экземплярами работать надо.


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]


berilДата: Понедельник, 12 Августа 2013, 20:45 | Сообщение # 4148
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
А если действие нужно не в Step. Можно пример smile



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
KrososДата: Вторник, 13 Августа 2013, 09:06 | Сообщение # 4149
постоянный участник
Сейчас нет на сайте
beril, а как ты собрался делать действие без степа Oo?
Тогда подойдет аларм.





Мой проект
berilДата: Вторник, 13 Августа 2013, 10:51 | Сообщение # 4150
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
В Draw надо wacko



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
GameMixДата: Вторник, 13 Августа 2013, 12:05 | Сообщение # 4151
старожил
Сейчас нет на сайте
beril, для Draw нужно будет просто увеличить кол-во шагов для таймера, т.к. Draw быстрее, чем Step.

Steel Standoff - 2D аркада.
Мои статьи
KrososДата: Вторник, 13 Августа 2013, 12:58 | Сообщение # 4152
постоянный участник
Сейчас нет на сайте
Я сделал эффект и дал ему место:
Код
if global.AttackPoint>0{
part_emitter_region(global._systemabc,global._emitterabc ,global.AttackPoint.x-64,global.AttackPoint.x+64,global.AttackPoint.y-64,global.AttackPoint.y+64,ps_shape_diamond,ps_distr_linear);  }  


Как теперь его убрать?
Я пробовал это , но не помогло:
Код
if global.AttackPoint>0{
part_emitter_region(global._systemabc,global._emitterabc ,global.AttackPoint.x-64,global.AttackPoint.x+64,global.AttackPoint.y-64,global.AttackPoint.y+64,ps_shape_diamond,ps_distr_linear);                     
}else{part_system_clear(global._systemabc)  part_particles_clear(global._emitterabc)}

Добавлено (13.08.2013, 12:58)
---------------------------------------------
А ,точно , я нашел ошибку.Я все это не туда запихнул и не то убрал... bag





Мой проект


Сообщение отредактировал Krosos - Вторник, 13 Августа 2013, 12:51
AnthemДата: Пятница, 16 Августа 2013, 22:21 | Сообщение # 4153
Д'Артаньян
Сейчас нет на сайте
Как в ГМЛ обозначить "область перед объектом в зависимости от направления движения"?

Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
GameMixДата: Суббота, 17 Августа 2013, 00:03 | Сообщение # 4154
старожил
Сейчас нет на сайте
Anthem, используем lengthdir_x() и lengthdir_y().

Пример:
Create объекта, перед которым надо "обозначить область":
Код
rectWidth = 100; // ширина области
rectLen = 200; // длина области

В EndStep или в Draw(чтобы видеть область)
Код
angle = point_direction(x, y, mouse_x, mouse_y); // вместо направления движения объекта

// ====== вычисление ограниченной прямоугольной области перед объектом =======
x1 = x + lengthdir_x(rectWidth / 2, angle + 90);
y1 = y + lengthdir_y(rectWidth / 2, angle + 90);

x2 = x + lengthdir_x(rectWidth / 2, angle - 90);
y2 = y + lengthdir_y(rectWidth / 2, angle - 90);

x3 = x1 + lengthdir_x(rectLen, angle);
y3 = y1 + lengthdir_y(rectLen, angle);

x4 = x2 + lengthdir_x(rectLen, angle);
y4 = y2 + lengthdir_y(rectLen, angle);
// ===========================================================================

// рисую круг вместо спрайта объекта
draw_circle(x, y, 3, false);

// визуальное представление области
draw_line(x, y, x1, y1);
draw_line(x, y, x2, y2);
draw_line(x1, y1, x3, y3);
draw_line(x2, y2, x4, y4);
draw_line(x3, y3, x4, y4);


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал GameMix - Суббота, 17 Августа 2013, 00:04
MasterSamboДата: Суббота, 17 Августа 2013, 09:02 | Сообщение # 4155
заслуженный участник
Сейчас нет на сайте
Как сделать эффект фонаря?
GameMixДата: Суббота, 17 Августа 2013, 09:24 | Сообщение # 4156
старожил
Сейчас нет на сайте
arkady, тут тебе помогут сурфы, и чтобы их использовать, нужно хотя бы чуть-чуть знать GML.

Steel Standoff - 2D аркада.
Мои статьи
MasterSamboДата: Суббота, 17 Августа 2013, 09:41 | Сообщение # 4157
заслуженный участник
Сейчас нет на сайте
Приступаю!
t111Дата: Суббота, 17 Августа 2013, 13:51 | Сообщение # 4158
почетный гость
Сейчас нет на сайте
Помогите Пожалуйста! Волнуют некоторые вопросы, из за которых толком не могу реализовать игру ...

Суть
игры такая: два самолета на
одном экране воюют против
друг-друга. При трех
попаданиях самолет
взрывается, есть
возможность
катапультироваться. Как
сделать, чтобы самолет при
зазатой кнопки в сторону
плавно набирал скорость или
терял ее при обратом
нажатии? Еще как сделать
интервал между вылетами
пуль, например в одну
секунду, чтобы например
ровно на секунду кнопка
выстрела была не активна
при нажатии после вылета
первой пули, потом секунда
проходит, я жму и вылетает
вторая. А то я например жму
часто и они валят градом,
так не интерессно. Ну вроди
пока все, заранее спасибо.
Форум игроделов »
Конструкторы игр и лёгкие в


как известно, встречают по
одежке, а провожают
uninstall'ом"

KrososДата: Суббота, 17 Августа 2013, 22:27 | Сообщение # 4159
постоянный участник
Сейчас нет на сайте
t111, отредактируй сообщение ,блин, и пронумеруй вопросы - нифига не понятно. wacko




Мой проект
GameMixДата: Воскресенье, 18 Августа 2013, 00:07 | Сообщение # 4160
старожил
Сейчас нет на сайте
Krosos, думаю, вопрос уже не актуален (тема с этим же вопросом).

Steel Standoff - 2D аркада.
Мои статьи
Поиск:

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