Вопрос - Ответ (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, но незнаю, будет ли так правильно
Сталина в каждый дом!
Сообщение отредактировал 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, ну не важно , главное , чтобы он понял вот такой способ таймера. Аларм и такой способ оба хороши , но в разных ситуациях. Аларм работает только для одного шага действий , а мой способ работает для постоянных шагов.
Мой проект
|
|
| | | |
Krosos | Дата: Вторник, 13 Августа 2013, 09:06 | Сообщение # 4149 |
постоянный участник
Сейчас нет на сайте
| beril, а как ты собрался делать действие без степа Oo? Тогда подойдет аларм.
Мой проект
|
|
| | |
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) --------------------------------------------- А ,точно , я нашел ошибку.Я все это не туда запихнул и не то убрал...
Мой проект
Сообщение отредактировал 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'ом"
|
|
| | |
GameMix | Дата: Воскресенье, 18 Августа 2013, 00:07 | Сообщение # 4160 |
старожил
Сейчас нет на сайте
| Krosos, думаю, вопрос уже не актуален (тема с этим же вопросом).
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
|