2016-12-21 16 views
-2

Я не могу заставить мой код работать, Я внимательно следил за учебником, а затем доказал, что прочитал мою работу. он работал для учителя, но когда я попробовал, мой игрок застрял, он не оживлял и не двигался. Я разбил код на разные части, как это было в учебнике.студия создателя игры: я сломал элементы управления моего плеера

здесь главный бит:

///script_get_input 
right_key = keyboard_check(vk_right); 
up_key = keyboard_check(vk_up); 
left_key = keyboard_check(vk_left) 
down_key = keyboard_check(vk_down) 
dash_key = keyboard_check_pressed(ord('C')); 
attack_key = keyboard_check(ord('X')); 

///check for gamepad input 
if (gamepad_is_connected(0)) { 
    right_key = (gamepad_axis_value(0, gp_axislh)>= .5); 
    left_key = (gamepad_axis_value(0, gp_axislh)>= -.5); 
    up_key = (gamepad_axis_value(0, gp_axislv)>= -.5); 
    down_key = (gamepad_axis_value(0, gp_axislv)>= .5) 

} 

и устанавливает элементы управления в то время как это устанавливает, что они делают:

///scr_move_state 
scr_get_input(); 

///get the axis 
var xaxis = (right_key - left_key); 
var yaxis = (down_key - up_key); 

///get direction 
dir = point_direction(0, 0, xaxis, yaxis); 

///get length 
if (xaxis == 0 and yaxis = 0) { 
    len = 0; 
} else { 
    len = spd; 
} 
///get the hspd and vspd 
hspd = lengthdir_x(len, dir); 
vspd = lengthdir_y(len, dir); 

///move 
phy_position_x += hspd; 
phy_position_y += vspd; 

///control the sprite 
image_speed = sign(len)*.2; 
if (len == 0) image_index = 0; 

///vertical sprites 
if (vspd > 0) { 
    sprite_index = spr_player_down; 
} else if (vspd < 0) { 
    sprite_index = spr_player_up; 
} 

///horizontal sprites 
if (hspd > 0) { 
    spr_index = spr_player_right; 
} else if (hspd < 0) { 
    sprite_index = spr_player_left; 
} 

ой, а также как игрок взаимодействует с кодом

///moves the player in the step event 
scr_get_input(); 
script_execute(state); 

он выглядит действительно сложным, и я просто начинающий язык программирования. также я слышал, что у создателя игры есть уникальный язык, делающий его более сложным. любая обратная связь оценена!

ответ

0

Это странный учебник. Хотите поделиться им?

Прежде всего, вы используете переменные phy_position_*, для этого требуется, чтобы ваш объект был физическим. Является ли объект физическим объектом? Является ли мир physiscs inialized в вашей комнате?

Ваш код в целом выглядит нормально. Allthough; script_execute(state); выглядит странно. У вас есть сценарий с именем state? Если да, то каково это содержимое, и почему бы не просто запустить его, как state()?