| Сделать поворот вокруг своей оси | 
|  | 
| 
| 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 |  |   участник Сейчас нет на сайте | логично же.. Т.к. за угол поворота у нас отвечает переменная 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 |  |  |  |  |