2016-12-21 2 views
-2

Ich kann nicht meinen Code zu arbeiten, Ich folgte ein Tutorial genau dann Beweis meine Arbeit zu lesen. es funktionierte für den Lehrer, aber als ich es versuchte, war mein Spieler fest, es animierte nicht oder bewegte sich. Ich teile den Code in verschiedene Teile auf, so wie es im Tutorial war.Spiel Maker Studio: Ich brach die Steuerung meines Players

hier ist das wichtigste Bit:

///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) 

} 

und setzt die Kontrollen während dies setzt, was sie tun:

///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; 
} 

ach ja, und auch, wie der Spieler interagiert mit dem Code

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

sieht es wirklich komplex aus und ich bin nur ein Anfänger zum Codieren von Sprachen. Auch ich habe gehört, dass der Spielehersteller eine einzigartige Sprache hat, die es schwieriger macht. jede Rückmeldung ist willkommen!

Antwort

0

Dies ist ein seltsames Tutorial. Möchten Sie es teilen?

Zunächst einmal verwenden Sie die Variablen phy_position_*, dies erfordert, dass Ihr Objekt ein Physik-Objekt ist. Ist das Objekt ein Physikobjekt? Ist die Physiswelt in deinem Raum inialisiert?

Ihr Code im Allgemeinen sieht gut aus. Trotzdem; script_execute(state); sieht komisch aus. Hast du ein Skript namens Staat? Wenn ja, was sind diese Inhalte, und warum nicht einfach wie state() ausführen?

Verwandte Themen