Среда, 06 Ноября 2024, 00:29

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Сделать поворот вокруг своей оси
HasherdenДата: Воскресенье, 23 Сентября 2012, 23:21 | Сообщение # 1
был не раз
Сейчас нет на сайте
Я укажу схему на картинке, вроде бы все понятно, если нет пишите объясню подробнее

то есть движение зависит от направления объекта, к примеру если объект повернулся на 45градусов, то если нажать движение вперед, движение будет и дальше под углом 45градусов, назад тоже самое 45градусов, а вправо, лева перпендикулярно траектории движения


hellp me please

Сообщение отредактировал Hasherden - Воскресенье, 23 Сентября 2012, 23:49
ЙакудДата: Понедельник, 24 Сентября 2012, 01:36 | Сообщение # 2
участник
Сейчас нет на сайте
Code

CREATE:
sp  = 2; // Скорость движения
dir = 0;
dir_speed = 2 // Скорость поворота

STEP:
dir += (keyboard_check(ord("Q"))-keyboard_check(ord("E")))*dir_speed;

if(keyboard_check(ord("W"))){
    x += lengthdir_x(sp, dir);
    y += lengthdir_y(sp, dir);
}
if(keyboard_check(ord("S"))){
    x += lengthdir_x(sp, dir-180);
    y += lengthdir_y(sp, dir-180);
}

if(keyboard_check(ord("D"))){
    x += lengthdir_x(sp, dir-90);
    y += lengthdir_y(sp, dir-90);
}

if(keyboard_check(ord("A"))){
    x += lengthdir_x(sp, dir+90);
    y += lengthdir_y(sp, dir+90);
}


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0


Сообщение отредактировал Йакуд - Понедельник, 24 Сентября 2012, 01:37
HasherdenДата: Понедельник, 24 Сентября 2012, 02:51 | Сообщение # 3
был не раз
Сейчас нет на сайте
мерси

Добавлено (24.09.2012, 02:51)
---------------------------------------------
Йакуд, как сделать что бы спрайт поворачивался соответственно ?

Code
image_angle=direction
в степе не работает


hellp me please
ЙакудДата: Понедельник, 24 Сентября 2012, 08:21 | Сообщение # 4
участник
Сейчас нет на сайте
Code
image_angle=dir

логично же.. Т.к. за угол поворота у нас отвечает переменная dir.


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
HasherdenДата: Понедельник, 24 Сентября 2012, 10:58 | Сообщение # 5
был не раз
Сейчас нет на сайте
thx

hellp me please
ilgamerДата: Четверг, 27 Сентября 2012, 17:14 | Сообщение # 6
Needle Games
Сейчас нет на сайте
Проще будет вот так:

Create:
Code
playerAngle=0;
playerSpeed = 2;


Step:
Code
if(keyboard_check(ord("Q"))) playerAngle-=1; // 1 - скорость поворота
if(keyboard_check(ord("E"))) playerAngle+=1;

if(keyboard_check(ord("W")))
{
   x += playerSpeed*cos(degtorad(playerAngle));
   y += playerSpeed*sin(degtorad(playerAngle));
}

if(keyboard_check(ord("S")))
{
   x -= playerSpeed*cos(degtorad(playerAngle));
   y -= playerSpeed*sin(degtorad(playerAngle));
}

if(keyboard_check(ord("A")))
{
   x += playerSpeed*cos(degtorad(playerAngle-90));
   y += playerSpeed*sin(degtorad(playerAngle-90));
}

if(keyboard_check(ord("D")))
{
   x += playerSpeed*cos(degtorad(playerAngle+90));
   y += playerSpeed*sin(degtorad(playerAngle+90));
}

image_angle = -playerAngle;




Сообщение отредактировал ilgamer - Пятница, 28 Сентября 2012, 15:23
  • Страница 1 из 1
  • 1
Поиск:

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