moin 
ich habe hier den code meiner gamepadsteuerung (xbox 360/one controller). unschön und störend ist damit, dass die diagonalsteuerung träger ist, als up/down/left/right.
was könnte man hier optimieren? if up & left {code} etc. ??
Alles anzeigen
grüße aus dem norden

ich habe hier den code meiner gamepadsteuerung (xbox 360/one controller). unschön und störend ist damit, dass die diagonalsteuerung träger ist, als up/down/left/right.
was könnte man hier optimieren? if up & left {code} etc. ??
GML-Quellcode
- ///gamepad movement
- if sprite_index = spr_playership || sprite_index = spr_playership_lowhealth
- {
- // set up gamepad & variables
- (up = (gamepad_axis_value(0, gp_axislv));
- down = (gamepad_axis_value(0, gp_axislv));
- left = (gamepad_axis_value(0, gp_axislh));
- right = (gamepad_axis_value(0, gp_axislh));
- a_button = (gamepad_button_check(0, gp_face1));
- x_button = gamepad_button_check_pressed(0, gp_face3);
- //deadzone gamepad
- gamepad_set_axis_deadzone(0, 0.5);
- gamepad_set_button_threshold(0, 0.1);
- //do not fly outside view
- x = clamp(x, view_xview[0]+sprite_width,view_xview[0]+view_wview[0]-sprite_width)
- y = clamp(y, view_yview[0]+sprite_height, view_yview[0]+view_hview[0]-sprite_height)
- // move up with rotation
- if up < 0
- {
- image_angle += 3;
- y += up * playerspeed;
- image_angle =lerp(image_angle, 3, .1)
- }
- else
- if down > 0 //move down with rotation
- {
- image_angle -= 3;
- y += down * playerspeed;
- image_angle =lerp(image_angle, 3, .1)
- }
- else
- image_angle =lerp(image_angle,0, .1)
- //move left
- if left < 0
- {
- x += left * playerspeed;
- }
- //move right
- if right > 0
- {
- x += right * playerspeed;
- }
- //a_button shoot
- if can_shoot && a_button
- {
- //gunfire
- gunfire = instance_create(obj_playership.x+19 + lengthdir_x(0, image_angle), obj_playership.y+2 + lengthdir_y(20, image_angle), obj_playership_gunfire)
- gunfire.image_angle = image_angle;
- //spreadshot_bullet_straight
- bullet = instance_create(obj_playership.x + lengthdir_x(17, image_angle), obj_playership.y+2.5 + lengthdir_y(20, image_angle), obj_spreadshot);
- bullet.image_angle = image_angle;
- bullet.speed = playerspeed+5;
- bullet.direction = image_angle;
- //spreadshot_bullet_up
- bullet = instance_create(obj_playership.x + lengthdir_x(17, image_angle), obj_playership.y+2.5 + lengthdir_y(20, image_angle), obj_spreadshot);
- bullet.image_angle = image_angle-7;
- bullet.speed = playerspeed+5;
- bullet.direction = image_angle-7;
- //spreadshot_bullet_down
- bullet = instance_create(obj_playership.x + lengthdir_x(17, image_angle), obj_playership.y+2.5 + lengthdir_y(20, image_angle), obj_spreadshot);
- bullet.image_angle = image_angle+7;
- bullet.speed = playerspeed+5;
- bullet.direction = image_angle+7;
- //spreadshoot_sfx
- audio_play_sound(sfx_lightbullet, 1, false);
- can_shoot = false;
- alarm[0] = 5;
- }
- }
grüße aus dem norden
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von herr_martinelli ()