Пятница, 19 Апреля 2024, 16:34

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Парашютик (Помогите сделать)
Парашютик
EshfordДата: Воскресенье, 09 Января 2011, 15:28 | Сообщение # 1
Богиня Гамака ♥
Сейчас нет на сайте
Здравствуйте джисиаповцы. Помогите мне с одной вещью. Я незнаю как сделать что бы в прыжке у главного героя при нажатии на орпеделённую кнопку выскакивал паршутик и скорость гравитации уменьшалась. Помогите плиз... Плюсик обеспечен happy

Сообщение отредактировал Naruto-63 - Воскресенье, 09 Января 2011, 19:20
knight_of_honorДата: Воскресенье, 09 Января 2011, 15:41 | Сообщение # 2
Darrell Lance Abbott (Dimebag Darrell)
Сейчас нет на сайте
Как гравитацию делаешь?
EshfordДата: Воскресенье, 09 Января 2011, 15:54 | Сообщение # 3
Богиня Гамака ♥
Сейчас нет на сайте
Я пользуюсь либой. Вот что в степе:

Quote
if keyboard_lastkey=rightkey { //if you pressed the right key last
if left=0 { //if you are not moving left
image_xscale=1 //flips the image to face right
facedirection="right" //sets the variable direction (for bullet movement)
} //end if
} //end if
if keyboard_lastkey=leftkey{ //if you pressed the left key last
if right=0 { //if you are not moving right
image_xscale=-1 //flips the image to face left
facedirection="left" //sets the variable direction (for bullet movement)
} //end if
} //end if

if place_free(x,y+2) { //if there is no solid object below you
onGround=false //you are not on the ground
} else { //or if there is
onGround=true //you are on the ground
}

if onGround=false { //if you are not on the ground
gravity=fallspeed //sets the gravity
gravity_direction=270 //sets the direction (right=0, regular angles
}
if onGround=true { //if you are on the ground
gravity=0 //no more gravity
gravity_direction=0 //set the direction to the right to get rid of any bugs
}

if keyboard_check_released(rightkey) { //if you released the right arrow key
right=0 //you are not facing right anymore
}

if keyboard_check_released(leftkey) { //if you released the left arrow key
left=0 //you are not facing left anymore
}

if keyboard_check(vk_nokey) {
if onGround=true { //if you are on the ground
sprite_index=spriteIdle //sets the sprite
image_speed=idlespeed //sets the image speed
}

GameMixДата: Воскресенье, 09 Января 2011, 15:55 | Сообщение # 4
старожил
Сейчас нет на сайте
Naruto-63, проверяешь, если место под ГГ свободно и нажата определенная клавиша, допустим Shift, тогда изменяешь гравитацию на меньшую:

Событие создания:

Code
parashut = false;
gravity_direction = 270;
gravity = 0.5;

Событие шага:

Code

if !place_free(x,y+1) gravity = 0;
if keyboard_check_pressed(vk_shift) {parashut = true};
if place_free(x,y+4) && parashut = true
then gravity = 0.1;


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


Сообщение отредактировал аТнОтХоАн - Воскресенье, 09 Января 2011, 15:56
EshfordДата: Воскресенье, 09 Января 2011, 16:06 | Сообщение # 5
Богиня Гамака ♥
Сейчас нет на сайте
Чёто я неврубился...
Посмотри пожалуйста исходник:
{Скачано}
Добавлено (09.01.2011, 16:06)
---------------------------------------------
ГРАФИКУ НЕ ТЫРИТЬ ПОЖАЛУЙСТА


Сообщение отредактировал Naruto-63 - Воскресенье, 09 Января 2011, 16:29
GameMixДата: Воскресенье, 09 Января 2011, 16:26 | Сообщение # 6
старожил
Сейчас нет на сайте
Naruto-63, скинул пример в личку.

Steel Standoff - 2D аркада.
Мои статьи
EshfordДата: Воскресенье, 09 Января 2011, 18:24 | Сообщение # 7
Богиня Гамака ♥
Сейчас нет на сайте
аТнОтХоАн, Спасибо огромное ++++

Добавлено (09.01.2011, 18:24)
---------------------------------------------
Есть проблема с добавлением спрайта

DeswingДата: Воскресенье, 09 Января 2011, 18:26 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Quote (Naruto-63)
Есть проблема с добавлением спрайта

какая?
EshfordДата: Воскресенье, 09 Января 2011, 20:20 | Сообщение # 9
Богиня Гамака ♥
Сейчас нет на сайте
Вот пример:
[Исходник был скачан]
Смотри, все вроде нормально, главный герой бегает прыгает, на ctrl в воздухе раскрывает зонтик (парашутик), но происходит это как-то не корректно, не всегда парашют появляется и не всегда изменяется гравитация... Надеюсь разберешься!!!
ГРАФИКУ НЕ ТЫРИТЬ ПЛИЗ

Добавлено (09.01.2011, 19:28)
---------------------------------------------
ВСЁ ПРОБЛЕМА РЕШЕНА

Добавлено (09.01.2011, 20:15)
---------------------------------------------
Нифига проблема не решена sad

Добавлено (09.01.2011, 20:20)
---------------------------------------------
Люди помогите, у меня изрядно портиться качество спрайтов если попрыгать и побиться об стену cry
[скачано]

Сообщение отредактировал Naruto-63 - Понедельник, 10 Января 2011, 14:15
DeswingДата: Воскресенье, 09 Января 2011, 20:53 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Naruto-63, в столкновении оставь только код parashut = false; )
EshfordДата: Воскресенье, 09 Января 2011, 21:20 | Сообщение # 11
Богиня Гамака ♥
Сейчас нет на сайте
Deswing, Погоди...
DeswingДата: Воскресенье, 09 Января 2011, 21:40 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Naruto-63, ?
GameMixДата: Понедельник, 10 Января 2011, 05:15 | Сообщение # 13
старожил
Сейчас нет на сайте
Quote (Naruto-63)
Люди помогите, у меня изрядно портиться качество спрайтов если попрыгать и побиться об стену

Сначала не заметил этот баг, а потом, недолго поломав клаву, убедился, что есть проблема.
Я думаю это из-за функций image_xscale.
Когда очень часто меняешь направление, функция не успевает среагировать и портится качество спрайта.

Я решил эту проблему так:
1. Добавил дубликат спрайта sp_smile_0 и назвал его sp_lsmile;
2. Отразил все кадры спрайта sp_lsmile по горизонтали;
3. Заменил в скрипте функцию image_xscale функцией sprite_index

Код в событии прижатия клавиши влево получился такой:

Code
x-=2;
if !place_free(x,y+2) sprite_index = sp_lspmile else sprite_index = sp_smile_1;
image_speed = 0.35

В событии прижатия клавиши вправо такой:

Code
x+=2;
if !place_free(x,y+2) sprite_index = sp_smile_0 else sprite_index = sp_smile_1;
image_speed = 0.35

В событии release <any key> код такой:

Code
sprite_index = sp_smile; image_speed = 0.1;

Теперь должно нормально работать smile


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


Сообщение отредактировал аТнОтХоАн - Понедельник, 10 Января 2011, 05:33
EshfordДата: Понедельник, 10 Января 2011, 14:12 | Сообщение # 14
Богиня Гамака ♥
Сейчас нет на сайте
аТнОтХоАн, Да всё, эту проблему нормально решил уже smile
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Парашютик (Помогите сделать)
  • Страница 1 из 1
  • 1
Поиск:

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