Вторник, 26 Ноября 2024, 02:16

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Стрельба, относительно положения героя
EshfordДата: Четверг, 27 Января 2011, 23:26 | Сообщение # 1
Богиня Гамака ♥
Сейчас нет на сайте
И снова здравствуйте товарищи игроделы... Думал, думал я. И решил опять состряпать платформер. Столкнулся с одной проблемой. Мне нужно, чтобы когда мой герой смотрит влево, при нажатии на SPACE летела пуля влево. А если герой смотрит вправо, летела вправо. Знаю очень глупый вопрос, но я всё в GM напрочь забыл. Мне стыдно даже shy
NeZnayuДата: Четверг, 27 Января 2011, 23:34 | Сообщение # 2
__танцуй!__
Сейчас нет на сайте
Есть много решений этой проблемы, все зависит от того как ты определяешь положение героя (смотрит вправо/влево)

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
EshfordДата: Четверг, 27 Января 2011, 23:36 | Сообщение # 3
Богиня Гамака ♥
Сейчас нет на сайте
NeZnayu, Типо мне код скинуть? smile
NeZnayuДата: Четверг, 27 Января 2011, 23:39 | Сообщение # 4
__танцуй!__
Сейчас нет на сайте
Допустим.

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
EshfordДата: Четверг, 27 Января 2011, 23:42 | Сообщение # 5
Богиня Гамака ♥
Сейчас нет на сайте
Create
Code
walkspeed=.35           //sets the speed of animation
image_speed=walkspeed
bounderies=sprite_width/2       //left and right bounderies for the room (half of the characters sprite widht recommended)
chr_speed=3             //speed of the character (more=faster)
jump=12                //sets the speed of the jump (more=higher)
maxheight=2             //maximum height to go on a sloped ground
fallspeed=.4             //how fast you fall (gravity)
onGround=false                  //tells if you are on the ground (don't change)
right=0                         //turning variables (don't change)
left=0                          //turning variables (don't change)
facedirection="right"           //turning variables (don't change)
idlespeed=.1

Code
spriteIdle=argument0       //idle sprite
spriteWalk=argument1       //walk sprite
spriteJump=argument2       //jump sprite

Code
rightkey=vk_right
leftkey=vk_left
jumpkey=vk_up

Step
Code

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
}

Добавлено (27.01.2011, 23:42)
---------------------------------------------
События клавиш надеюсь ненадо...

NeZnayuДата: Четверг, 27 Января 2011, 23:47 | Сообщение # 6
__танцуй!__
Сейчас нет на сайте
Смотри, у тебя в при нажатии на стрелки вправо/влево меняется переменная:
facedirection="left"/"right"

Думаю понятно что делать дальше:

При стрельбе проверять куда смотрит персонаж и задавать пуле соответствующее направление.

Code
var bullet;
bullet=instance_create(x,y,obj_bullet);
switch (facedirection)
{
  case "left": bullet.direction=180; break;
  default: bullet.direction=0;
}
bullet.speed=***


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
EshfordДата: Четверг, 27 Января 2011, 23:52 | Сообщение # 7
Богиня Гамака ♥
Сейчас нет на сайте
Да Да Да.... Понятно теперь happy Спасибо smile
  • Страница 1 из 1
  • 1
Поиск:

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