fighting them bollets

This commit is contained in:
Robin Hübner 2017-07-30 22:25:42 +02:00
parent 4f553abc0f
commit 0a8e9f5cc0
6 changed files with 59 additions and 7 deletions

View File

@ -1,7 +1,18 @@
extends KinematicBody2D extends KinematicBody2D
var velocity = Vector2(1, 0)
var lifetime = 16 # seconds
onready var sprite = get_node("Sprite")
func _ready(): func _ready():
set_fixed_process(true) set_fixed_process(true)
func fire(vel, dir, speed):
velocity = vel + (dir * speed)
func _fixed_process(delta): func _fixed_process(delta):
pass move(velocity * delta)
lifetime -= delta
if lifetime <= 0:
queue_free()

View File

@ -1,6 +1,7 @@
[gd_scene load_steps=2 format=1] [gd_scene load_steps=3 format=1]
[ext_resource path="res://Bullet.gd" type="Script" id=1] [ext_resource path="res://Bullet.gd" type="Script" id=1]
[ext_resource path="res://raw/simple_bullet.png" type="Texture" id=2]
[node name="Bullet" type="KinematicBody2D"] [node name="Bullet" type="KinematicBody2D"]
@ -10,4 +11,8 @@ collision/mask = 1
collision/margin = 0.08 collision/margin = 0.08
script/script = ExtResource( 1 ) script/script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 2 )

21
Gun.gd Normal file
View File

@ -0,0 +1,21 @@
extends Sprite
var Bullet = load("res://Bullet.tscn")
var gun_cooldown = 0
var gun_delay = 0.25
func _ready():
set_fixed_process(true)
func _fixed_process(delta):
gun_cooldown = gun_cooldown - delta
func fire(vel, dir):
if gun_cooldown <= 0:
var new_bullet = Bullet.instance()
var gun_pos = get_global_pos()
new_bullet.set_pos(gun_pos)
get_tree().get_root().add_child(new_bullet)
new_bullet.fire(vel, dir, 256)
gun_cooldown += gun_delay

View File

@ -3,6 +3,8 @@ extends KinematicBody2D
onready var sprite = get_node("Sprite") onready var sprite = get_node("Sprite")
onready var camera = get_node("Camera2D") onready var camera = get_node("Camera2D")
onready var particles = get_node("Sprite/Particles2D") onready var particles = get_node("Sprite/Particles2D")
onready var left_gun = get_node("Sprite/LeftGun")
onready var right_gun = get_node("Sprite/RightGun")
var mov_speed = 64 # pixels per second var mov_speed = 64 # pixels per second
var ship_vel = Vector2(0, 0) var ship_vel = Vector2(0, 0)
@ -41,10 +43,11 @@ func _fixed_process(delta):
is_moving = false is_moving = false
if Input.is_action_pressed("player_attack_primary"): if Input.is_action_pressed("player_attack_primary"):
pass left_gun.fire(ship_vel, -ship_dir)
right_gun.fire(ship_vel, -ship_dir)
elif Input.is_action_pressed("player_attack_secondary"): elif Input.is_action_pressed("player_attack_secondary"):
pass pass
if Input.is_action_pressed("player_switch_up"): if Input.is_action_pressed("player_switch_up"):
pass pass
elif Input.is_action_pressed("player_switch_down"): elif Input.is_action_pressed("player_switch_down"):

View File

@ -1,8 +1,9 @@
[gd_scene load_steps=4 format=1] [gd_scene load_steps=5 format=1]
[ext_resource path="res://Player.gd" type="Script" id=1] [ext_resource path="res://Player.gd" type="Script" id=1]
[ext_resource path="res://img/player_ship.tex" type="Texture" id=2] [ext_resource path="res://img/player_ship.tex" type="Texture" id=2]
[ext_resource path="res://raw/exhaust.png" type="Texture" id=3] [ext_resource path="res://Gun.gd" type="Script" id=3]
[ext_resource path="res://raw/exhaust.png" type="Texture" id=4]
[node name="Player" type="KinematicBody2D"] [node name="Player" type="KinematicBody2D"]
@ -17,6 +18,16 @@ script/script = ExtResource( 1 )
texture = ExtResource( 2 ) texture = ExtResource( 2 )
[node name="LeftGun" type="Sprite" parent="Sprite"]
transform/pos = Vector2( -13.0319, -4.86733 )
script/script = ExtResource( 3 )
[node name="RightGun" type="Sprite" parent="Sprite"]
transform/pos = Vector2( 12.0375, -4.97201 )
script/script = ExtResource( 3 )
[node name="Particles2D" type="Particles2D" parent="Sprite"] [node name="Particles2D" type="Particles2D" parent="Sprite"]
transform/pos = Vector2( 0, 13.1031 ) transform/pos = Vector2( 0, 13.1031 )
@ -24,7 +35,7 @@ config/amount = 256
config/lifetime = 2.0 config/lifetime = 2.0
config/process_mode = 1 config/process_mode = 1
config/local_space = false config/local_space = false
config/texture = ExtResource( 3 ) config/texture = ExtResource( 4 )
params/direction = 0.0 params/direction = 0.0
params/spread = 24.0 params/spread = 24.0
params/linear_velocity = 32.0 params/linear_velocity = 32.0

View File

@ -0,0 +1 @@
filter=false