Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var spd = argument0
- var rof = argument1
- var up = keyboard_check(ord('W'))
- var down = keyboard_check(ord('S'))
- var left = keyboard_check(ord('A'))
- var right = keyboard_check(ord('D'))
- var fire = mouse_check_button(mb_left)
- var acc = argument2
- var dmg = argument3
- var run = keyboard_check(vk_shift)
- var reload = keyboard_check_pressed(ord('R'))
- var debug = keyboard_check_pressed(ord('P'))
- if(debug){state = "class"}
- //shooting
- if(fire && alarm[0] <= 0 && ammo > 0 && !reloading){
- var acc_ = irandom_range(-acc, acc)
- 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);
- bullet.direction = self.image_angle + acc_
- bullet.dmg = dmg
- audio_play_sound(snd_gunfire,0,0)
- alarm[0] = rof
- 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)
- self.ammo--
- }
- if(!self.reloading && reload){
- alarm[1] = room_speed
- self.reloading = true
- }
- //x or y axis
- if(run && self.sprint >= 0){
- if((left && up) || (left && down) || (right && down) || (right && up)){
- self.hspeed = (-left + right) * (spd/2) * sqrt(2) * 2;
- self.vspeed = (-up + down) * (spd/2) * sqrt(2) * 2;
- }else{
- self.hspeed = (-left + right) * spd * 2;
- self.vspeed = (-up + down) * spd * 2;
- }
- self.sprint-=2
- }else{
- if((left && up) || (left && down) || (right && down) || (right && up)){
- self.hspeed = (-left + right) * (spd/2) * sqrt(2);
- self.vspeed = (-up + down) * (spd/2) * sqrt(2);
- }else{
- self.hspeed = (-left + right) * spd;
- self.vspeed = (-up + down) * spd;
- }
- }
- if(!run) self.sprint ++
- //Horizontal collision
- if (place_meeting(self.x+self.hspeed,self.y,obj_wall_parent))
- {
- while(!place_meeting(self.x+sign(self.hspeed),self.y,obj_wall_parent))
- {
- self.x += sign(self.hspeed);
- }
- self.hspeed = 0;
- }
- //Vertical
- if (place_meeting(self.x,self.y+self.vspeed,obj_wall_parent))
- {
- while(!place_meeting(self.x,self.y+sign(self.vspeed),obj_wall_parent))
- {
- self.y += sign(self.vspeed);
- }
- self.vspeed = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement