Суббота, 30 Ноября 2024, 01:24

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
Dva_KotaДата: Пятница, 24 Декабря 2010, 11:47 | Сообщение # 401 | Тема: Мои вопросы по моей игре
заслуженный участник
Сейчас нет на сайте
перед функцией
Code
draw_text(view_xview[0]+10,view_yview[0]+10,global.peremennaia)

ставь функцию
Quote
draw_set_font(font) Устанавливает шрифт, который будет использоваться при рисовании текста. Используйте -1, чтобы установить встроенный по умолчанию шрифт Arial 12.

Для цветного текста вместо

Code
draw_text(view_xview[0]+10,view_yview[0]+10,global.peremennaia)

используй функцию
Quote
draw_text_color(x,y,string,c1,c2,c3,c4,alpha) Рисует строку в позиции (x,y) подобно вышеупомянутой функции. Четыре цвета определяют цвета левого верхнего, верхнего-правого, нижнего-правого, и нижнего-левого угла текста. alpha прозрачность, используйте (0-1).


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

Energy Wars
Dva_KotaДата: Пятница, 24 Декабря 2010, 09:08 | Сообщение # 402 | Тема: мои вопросы по game maker 8
заслуженный участник
Сейчас нет на сайте
Сделай проверку "есть ли под игроком лестница". Если есть - стоим на лестнице и не проваливаемся. Это делается так же, как с полом.

А лучше сделай маленький пример, в котором только "пол", твой "игрок" и "лестница" - так будет быстрее и проще сделать.


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 19:12 | Сообщение # 403 | Тема: Анимация в ГМ
заслуженный участник
Сейчас нет на сайте
image_speed - скорость анимации (1 - по умолчанию)
чтобы анимация проигрывалась один раз в событии "конец анимации" ставь код:
Code
image_speed = 0;


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 18:47 | Сообщение # 404 | Тема: Старт в определённом уровне
заслуженный участник
Сейчас нет на сайте
В редакторе ГМ, в списке слева просто перетащи вторую комнату выше первой (они запускаются в том порядке, в котором там стоят).

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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 18:19 | Сообщение # 405 | Тема: движущаяся платформа
заслуженный участник
Сейчас нет на сайте
Я код не стал писать по тому что не уверен правильный ли он будет. По этому просто расписал все как я это представляю. Ок. попробую сделать код:

Code
if place_meeting(x,y+1,obj_platforma)
     {
     speed+=instance_nearest(x,y,obj_platforma).speed;
     }

Здесь просто добавление к скорости игрока скорости платформы (если делать платформу как я выше писал, то для изменения направления движения нужно менять не direction, а speed). Все остальные параметры, о которых я выше писал, нужно добавлять и экспериментировать с ними. На это у меня времени сейчас нет. Но если ты попробуешь что-то из выше перечисленного добавить - будет очень хорошо. Если что-то получится, выкладывай, пожалуйста.


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 18:05 | Сообщение # 406 | Тема: движущаяся платформа
заслуженный участник
Сейчас нет на сайте
ну я думаю что нужно проверять "есть ли под игроком платформа (например функцией place_meeting()) и если есть - добавлять к его скорости скорость платформы. А если платформа движется с постоянной скоростью, как в том примере что я описывал, нужно дополнительно проверять direction платформы и в зависимости от этого умножать скорость на -1 или не умножать. Так же нужно учитывать каким образом сделано движение игрока его скорость и направление движения (вдруг ты захочешь походить по платформе). Можно сделать чтобы игрок не мог ходить по платформе. Тогда еще проще: проверяешь стоит ли игрок на платформе и если стоит - привязывай его к координатам платформы.

p.s.: повторюсь, я платформеры никогда не делал - это все только теория.


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

Energy Wars


Сообщение отредактировал Dva_Kota - Четверг, 23 Декабря 2010, 18:06
Dva_KotaДата: Четверг, 23 Декабря 2010, 17:56 | Сообщение # 407 | Тема: мои вопросы по game maker 8
заслуженный участник
Сейчас нет на сайте
Нет, ни так (тут он будет подниматься только при нажатии влево и вверх). Нужно вот так (Это только чтобы поднимался, чтобы опускался я думаю, ты уже догадаешься как сделать)
Code
if (keyboard_check(vk_right))    
        {    
        x += 3;
        if (keyboard_check(vk_up))
          {
          if (place_meeting(x+3,y-3,obj_ступенька))    
             {    
             y -= 3;    
             }
          }
        }    
else    
        {    
        if (keyboard_check(vk_left) )    
            {
            x -= 3;
            if (keyboard_check(vk_up))
              {
              if (place_meeting(x-3,y-3,obj_ступенька))    
                {    
                y -= 3;    
                }    
              }
            }    
        }

Этот код будет работать если лестница повернутоа в одну сторону, и если она повернута в другую сторону.

MIKEL922, ты бы по понятнее писал что тебе нужно, мы же не можем твои мысли читать biggrin


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

Energy Wars


Сообщение отредактировал Dva_Kota - Четверг, 23 Декабря 2010, 17:58
Dva_KotaДата: Четверг, 23 Декабря 2010, 16:53 | Сообщение # 408 | Тема: движущаяся платформа
заслуженный участник
Сейчас нет на сайте
Ну, вообще для горизонтальной платформы можно в создании не писать direction=0;
speed=4; можно перенести в аларм (пусть каждый раз задает)
Но аларм этот все равно нужно как-то запускать, по этому alarm[0]=1; в событии создания все равно ставить нужно.
А вот расстояние al=100; можно, наверное, тоже поставить в аларм.
В итоге получаем код, который нужно ставить в событие alarm0:
Code
al=100;
speed=4;
direction+=180;
alarm[0]=al*speed;

А в событии создание просто задаешь через сколько шагов после старта комнаты начнется движение платформы например

Code
alarm[0]=1;

Кстати, можно даже круче сделать! Можно не в создании задавать, а в любом событии при любом условии. Например у тебя есть яма. Через нее не пройти без движущейся платформы, а она на другом конце ямы стоит и не двигается.... Чтобы ее запустить нужно найти ключ. Находишь ключ, и при столкновении игрока с ключом (когда он его берет) запускаешь для платформы alarm[0]=1; и она начинает двигаться! Ну в общем тут уже куча всяких возможностей. biggrin

Добавлено (23.12.2010, 16:53)
---------------------------------------------
а вот для Вертикального движения нужно все равно в создании объекта писать

Code
direction=90;


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

Energy Wars


Сообщение отредактировал Dva_Kota - Четверг, 23 Декабря 2010, 16:38
Dva_KotaДата: Четверг, 23 Декабря 2010, 16:12 | Сообщение # 409 | Тема: Помогите соединить просто РПГ с примером ММО
заслуженный участник
Сейчас нет на сайте
Я в сетевых играх не спец, но одно могу сказать точно: соединить так просто две игры у тебя вряд ли получится.
Сервер и клиент должны обмениваться определенными данными (координаты игроков и т.д.). Тебе нужно просто взять простенький пример онлайн игры, разобраться в нем и добавить Онлайн в свою игру (лучше делать сразу онлайн, а не добавлять потом - так проще будет).


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 16:02 | Сообщение # 410 | Тема: движущаяся платформа
заслуженный участник
Сейчас нет на сайте
Через аларм можно, оказывается, сделать на много проще чем то что я писал выше:

В создании

Code
al=100;
direction=0;
speed=4;
alarm[0]=1;

Событие alarm0

Code
direction+=180;
alarm[0]=al*speed;

Переменная al будет отвечать за расстояние , которое будет проходить платформа.
Попробуй сделать этим кодом (его я тоже еще не проверял)
Производительность с таким кодом будет на много выше. smile


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

Energy Wars


Сообщение отредактировал Dva_Kota - Четверг, 23 Декабря 2010, 16:03
Dva_KotaДата: Четверг, 23 Декабря 2010, 15:54 | Сообщение # 411 | Тема: Помогите соединить просто РПГ с примером ММО
заслуженный участник
Сейчас нет на сайте
1 файл (мморпг) - это какой-то онлайн-пример , а 2 - твоя игра? Я правильно понял? Твоя игра сейчас не онлайн и ты хочешь сделать из нее онлайн, я правильно понимаю? (файл у меня еще скачивается, по этому пока посмотреть не могу)

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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 15:43 | Сообщение # 412 | Тема: движущаяся платформа
заслуженный участник
Сейчас нет на сайте
Для вертикальных точно так же. Только вместо x везде ставь y. biggrin

Добавлено (23.12.2010, 15:40)
---------------------------------------------
Можно двигать и по диагонали, и вообще под любым углом. Для этого делаешь как по горизонтали, только в степе direction увеличь на столько градусов, на сколько нужно изменить движение.

Добавлено (23.12.2010, 15:42)
---------------------------------------------
Но такой способ не самый хороший. Через alarm будет рациональнее (не будет лишних проверок каждый шаг) и тоже можно задавать расстояние.
Если нужно распишу как именно.

Добавлено (23.12.2010, 15:43)
---------------------------------------------
А, забыл, для вертикальной еще нужно direction изменить: вместо 0 и 180 нужно 90 и 270 соответственно.


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 15:02 | Сообщение # 413 | Тема: движущаяся платформа
заслуженный участник
Сейчас нет на сайте
Тебе спасибо, я теперь хоть знаю как это делается (никогда платформеры не делал) biggrin

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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 14:30 | Сообщение # 414 | Тема: движущаяся платформа
заслуженный участник
Сейчас нет на сайте
Я думаю можно сделать так (Пример для движения платформы горизонтально):
В событии создания задаешь переменную (например start_x) и присваиваешь ей значение x
Code
start_x=x;

потом задаешь еще одну переменную (например dist), и в нее записываешь расстояние, которое должна проходить платформа, например 100
Code
dist=100;

потом задаешь направление движения и скорость
Code
direction=0;
speed=4;

в шаге делаешь проверку:
Code
if (x<start_x)
      {
      direction=0;
      }
else
      {
      if (x>(start_x+dist))
          {
          direction=180;
          }
      }

Расстояние можно задавать для каждого экземпляра объекта "платформа" отдельно

Вроде бы все.

p.s.: я этот способ не проверял еще.


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

Energy Wars


Сообщение отредактировал Dva_Kota - Четверг, 23 Декабря 2010, 14:32
Dva_KotaДата: Четверг, 23 Декабря 2010, 11:26 | Сообщение # 415 | Тема: Как сделать инвентарь в игре?
заслуженный участник
Сейчас нет на сайте
Я и не говорю что не рабочий.
Просто мой тебе совет: про оптимизацию лучше подумать заранее (тем более когда тебе готовый код дают), чем потом, когда игра почти готова, но очччень тормозит, переделывать все и думать где бы лишний код убрать.

Такие "мелочи" потом могут собраться в большие тормоза.


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

Energy Wars


Сообщение отредактировал Dva_Kota - Четверг, 23 Декабря 2010, 11:27
Dva_KotaДата: Четверг, 23 Декабря 2010, 11:22 | Сообщение # 416 | Тема: Как сделать инвентарь в игре?
заслуженный участник
Сейчас нет на сайте
Я там немного напутал: Изменение переменнной должно стоять перед обнулением слотов.
А вообще твой способ более громоздкий и менее рациональный.


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 11:09 | Сообщение # 417 | Тема: Как сделать инвентарь в игре?
заслуженный участник
Сейчас нет на сайте
zik13, ты думаешь что я тупой? fool Я вижу что это скрипт.
Я имел ввиду что у тебя означает каждая строка. Просто ты не рационально код написал. А когда у тебя будет 50 предметов ты будешь 50 раз if писать? Это не есть хорошо. Тем более ты опять написал этот же скрпит. Я ведь тебе его подправил (на предидущей странице) - убрал лишнюю проверку. Вот такой шаблон второй части кода (начиная со строки if mouse_check_button_pressed(mb_right)):

Code
if mouse_check_button_pressed(mb_right)
{
if slot[argument0,1] = 1
{

slot[argument0,0] = 0
slot[argument0,1] = 0
slot[argument0,2] = 0
slot[argument0,3] = 0
slot[argument0,4] = 0
изменение переменноей игрока
}
else
{
slot[argument0,1] -= 1
изменение переменной игрока
}
}

а проверку делай, всетаки через switch

Вместо

Code
if slot[argument0,4] = s_heal_smoll { o_player.health+=15 o_player.hpdraw=15 instance_create(o_player.x,o_player.y-25,o_drawhp)}    
if slot[argument0,4] = s_heal_medyum { o_player.health+=30 o_player.hpdraw=30 instance_create(o_player.x,o_player.y-25,o_drawhp)}   

Ставь проверку через switch


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 10:47 | Сообщение # 418 | Тема: Как сделать инвентарь в игре?
заслуженный участник
Сейчас нет на сайте
Что то я не врубаюсь.... Что это?

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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 10:44 | Сообщение # 419 | Тема: Как сделать инвентарь в игре?
заслуженный участник
Сейчас нет на сайте
Что по другому сделал?
Опять новый инвентарь?
blink


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

Energy Wars
Dva_KotaДата: Четверг, 23 Декабря 2010, 10:32 | Сообщение # 420 | Тема: Как сделать инвентарь в игре?
заслуженный участник
Сейчас нет на сайте
Quote (zik13)
это воспроизведется не взависимости от предмета

Ну конечно. Я думал ты догадаешься что вместо "изменение переменной игрока" нужно не просто изменять переменную, а предварительно проверить какой предмет в слоте. Проверку делай по индексу спрайта (он у тебя записан в slot[argument0,4]) или лучше по названию предмета (slot[argument0,4]). Проверку делай через switch. Пример:

Code
switch (slot[argument0,4])
     {
     case 'Маленькое зелье hp': увеличение здоровья; break;
     case 'следующий предмет': увеличение следующего параметра; break;
     }

Добавлено (23.12.2010, 10:32)
---------------------------------------------
2. Ты прописал в Draw рисование текста и не прописал рисование самого спрайта объекта. Посмотри, я недавно где-то писал как это исправить.


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

Energy Wars
Поиск:

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