Define ist unter lite-c anders als unter c-script, deshalb der fehler, probier mal das:

Code:
#DEFINE pl_speed_x 1;
#DEFINE pl_speed_y 2;
#DEFINE pl_speed_z 3;
#DEFINE pl_energie 4;

#DEFINE pl_weg_x 5;
#DEFINE pl_weg_y 6;
#DEFINE pl_weg_z 7;

...
Code:
my.skill[pl_weg_x] = (key_w - key_s) * my.skill[pl_speed_x] * time_step;
my.skill[pl_weg_y] = (key_d - key_a) * my.skill[pl_speed_y] * time_step;
c_move (my, vector(my.skill[pl_weg_x], my.skill[pl_weg_y], 0), nullvector, GLIDE);


sorry auch für die späte antwort, ich war aber recht lange beschäftigt wink

ineffizient meine ich z.b. in deinem (ersten) versuch weil du per IF abgefragt hast ob key_s/w/a/d gedrückt wird. Wie du aber ja schon gelernt hast, kannst du ein paar mikrozyklen rechenleistung sparen indem du keinen vergleich machst, sondern einfach den wert von key_* nimmst - da dieser bei "gedrückt" 1 ergibt - und mit dem speed wert multiplizierst, desweiteren finde ich (wenn es gravitation gibt, wenn nicht dann kannst du diesen part ignorieren) das 2 c_moves besser sind, einen für die bewegung und einen für die umwelteinflüsse, weil es sonst später sehr sehr schwer wird treppen zu steigen oder gar nur ganz leichte steigungen hochzugehen wink

ansonsten, du lernst fix, sehr gut und weiter so!


"Sometimes JCL reminds me of Notch, but more competent" ~ Kiyaku