Advertisement
Guest User

Example

a guest
Jan 6th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var spd = argument0
  2. var rof = argument1
  3. var up = keyboard_check(ord('W'))
  4. var down = keyboard_check(ord('S'))
  5. var left = keyboard_check(ord('A'))
  6. var right = keyboard_check(ord('D'))
  7. var fire = mouse_check_button(mb_left)
  8. var acc = argument2
  9. var dmg = argument3
  10. var run = keyboard_check(vk_shift)
  11. var reload = keyboard_check_pressed(ord('R'))
  12. var debug = keyboard_check_pressed(ord('P'))
  13.  
  14. if(debug){state = "class"}
  15. //shooting
  16. if(fire && alarm[0] <= 0 && ammo > 0 && !reloading){
  17.     var acc_ = irandom_range(-acc, acc)
  18.     var bullet = instance_create(self.x + lengthdir_x(self.sprite_width/2 + 8, self.image_angle + acc_),self.y + lengthdir_y(self.sprite_width/2 + 8, self.image_angle + acc_),obj_bullet);
  19.     bullet.direction = self.image_angle + acc_
  20.     bullet.dmg = dmg
  21.     audio_play_sound(snd_gunfire,0,0)
  22.     alarm[0] = rof
  23.     effect_create_above(ef_smokeup,self.x + lengthdir_x(self.sprite_width/2 + 4, self.image_angle),self.y + lengthdir_y(self.sprite_width/2 + 4, self.image_angle),.005,c_gray)
  24.     self.ammo--
  25. }
  26. if(!self.reloading && reload){
  27.     alarm[1] = room_speed
  28.     self.reloading = true
  29. }
  30.  
  31. //x or y axis
  32. if(run && self.sprint >= 0){
  33.     if((left && up) || (left && down) || (right && down) || (right && up)){
  34.         self.hspeed = (-left + right) * (spd/2) * sqrt(2) * 2;
  35.         self.vspeed = (-up + down) * (spd/2) * sqrt(2) * 2;
  36.     }else{
  37.         self.hspeed = (-left + right) * spd * 2;
  38.         self.vspeed = (-up + down) * spd * 2;
  39.     }
  40.     self.sprint-=2
  41. }else{
  42.     if((left && up) || (left && down) || (right && down) || (right && up)){
  43.         self.hspeed = (-left + right) * (spd/2) * sqrt(2);
  44.         self.vspeed = (-up + down) * (spd/2) * sqrt(2);
  45.     }else{
  46.         self.hspeed = (-left + right) * spd;
  47.         self.vspeed = (-up + down) * spd;
  48.     }
  49. }
  50. if(!run) self.sprint ++
  51.  
  52. //Horizontal collision
  53. if (place_meeting(self.x+self.hspeed,self.y,obj_wall_parent))
  54. {
  55.     while(!place_meeting(self.x+sign(self.hspeed),self.y,obj_wall_parent))
  56.     {
  57.         self.x += sign(self.hspeed);
  58.     }
  59.     self.hspeed = 0;
  60. }
  61. //Vertical
  62. if (place_meeting(self.x,self.y+self.vspeed,obj_wall_parent))
  63. {
  64.     while(!place_meeting(self.x,self.y+sign(self.vspeed),obj_wall_parent))
  65.     {
  66.         self.y += sign(self.vspeed);
  67.     }
  68.     self.vspeed = 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement