Hi,
ich habe ein Problem. Ich arbiete momentan an einem großen Projekt. Ich habe jedoch Probleme mit den Sprites des Spielers. Folgender Code wird im Step-Event abgearbeitet:
Alles anzeigen
Erklärungen:
success ist eine Variable, mit der ich teste, ob beim Springen ein passender Sprite gefunden wurde.
jump ist die Variable, die angibt, ob der Spieler auf dem Boden ist. 1 = ja, 0 = nein
Die Sprites an sich werden alle extern geladen, das funktioniert.
Mein Problem ist folgendes. Beim Springen (Leertaste) werden die Sprites nur dann gesetzt, wenn man sich bewegt. D.h. wenn man sich nicht bewegt und einfach springt, bleibt der Sprite player_idle. Könnte mir da wer helfen? Ich hab das schon mit !keyboard_check(vk_left) && !keyboard_check(vk_right) && keyboard_check(vk_space) probiert, das geht aber nicht, da man ja Space nicht gedrückt hält.
ich habe ein Problem. Ich arbiete momentan an einem großen Projekt. Ich habe jedoch Probleme mit den Sprites des Spielers. Folgender Code wird im Step-Event abgearbeitet:
GML-Quellcode
- success = 0;
- if
- keyboard_check(vk_right)
- {
- if
- jump = 0
- {
- if
- vspeed > 0
- {
- sprite_index = global.player_fall_r
- success = 1
- }
- else
- {
- sprite_index = global.player_jump_r
- success = 1
- }
- }
- else
- {
- sprite_index = global.player_walk_r
- success = 1
- }
- }
- if
- keyboard_check(vk_left)
- {
- if
- jump = 0
- {
- if
- vspeed > 0
- {
- sprite_index = global.player_fall_l
- success = 1
- }
- else
- {
- sprite_index = global.player_jump_l
- success = 1
- }
- }
- else
- {
- sprite_index = global.player_walk_l
- success = 1
- }
- }
- if
- !keyboard_check(vk_right) && !keyboard_check(vk_left) && sprite_index = global.player_walk_r
- {
- sprite_index = global.player_idle_r
- }
- if
- !keyboard_check(vk_right) && !keyboard_check(vk_left) && sprite_index = global.player_walk_l
- {
- sprite_index = global.player_idle_l
- }
- if
- hspeed = -0.1 or hspeed = -0.2
- {
- hspeed = 0
- }
- if (keyboard_check_pressed(vk_space)) && jump=1
- {
- if place_free(x,y+1)
- {
- if (keyboard_check(vk_left) && !place_free(x-1,y)) or (keyboard_check(vk_right) && !place_free(x+1,y))
- {
- exit;
- }
- }
- vspeed=-10
- }
Erklärungen:
success ist eine Variable, mit der ich teste, ob beim Springen ein passender Sprite gefunden wurde.
jump ist die Variable, die angibt, ob der Spieler auf dem Boden ist. 1 = ja, 0 = nein
Die Sprites an sich werden alle extern geladen, das funktioniert.
Mein Problem ist folgendes. Beim Springen (Leertaste) werden die Sprites nur dann gesetzt, wenn man sich bewegt. D.h. wenn man sich nicht bewegt und einfach springt, bleibt der Sprite player_idle. Könnte mir da wer helfen? Ich hab das schon mit !keyboard_check(vk_left) && !keyboard_check(vk_right) && keyboard_check(vk_space) probiert, das geht aber nicht, da man ja Space nicht gedrückt hält.