| Парашютик | 
|  | 
| 
| Eshford | Дата: Воскресенье, 09 Января 2011, 15:28 | Сообщение # 1 |  |   Богиня Гамака ♥ Сейчас нет на сайте | Здравствуйте джисиаповцы. Помогите мне с одной вещью. Я незнаю как сделать что бы в прыжке у главного героя при нажатии на орпеделённую кнопку выскакивал паршутик и скорость гравитации уменьшалась. Помогите плиз... Плюсик обеспечен   
 
 Сообщение отредактировал 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) ---------------------------------------------
 Нифига проблема не решена
    Добавлено (09.01.2011, 20:20) ---------------------------------------------
 Люди помогите, у меня изрядно портиться качество спрайтов если попрыгать и побиться об стену
   [скачано]
 
 
 Сообщение отредактировал 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; Теперь должно нормально работать  
 Steel Standoff - 2D аркада.
 Мои статьи
 
 
 Сообщение отредактировал аТнОтХоАн - Понедельник, 10 Января 2011, 05:33 |  |  |  |  | 
| 
| Eshford | Дата: Понедельник, 10 Января 2011, 14:12 | Сообщение # 14 |  |   Богиня Гамака ♥ Сейчас нет на сайте | аТнОтХоАн, Да всё, эту проблему нормально решил уже   |  |  |  |  |