Added bullet trajectory

This commit is contained in:
Kristofers Solo 2021-11-02 23:38:26 +02:00
parent 8f31e0c510
commit cae282c49a
6 changed files with 62 additions and 18 deletions

View File

@ -27,6 +27,7 @@ window/size/height=1080
window/size/test_width=1024 window/size/test_width=1024
window/size/test_height=600 window/size/test_height=600
window/stretch/mode="2d" window/stretch/mode="2d"
window/stretch/aspect="keep"
[input] [input]

View File

@ -107,10 +107,6 @@ func _process(delta: float) -> void:
if username_text_instance != null: if username_text_instance != null:
username_text_instance.name = "username" + name username_text_instance.name = "username" + name
if hp <= 0:
if get_tree().is_network_server():
rpc("destroy")
user_input = UIN_preset_pre_processor_instance.update() user_input = UIN_preset_pre_processor_instance.update()
user_state = get_user_state() user_state = get_user_state()
@ -141,7 +137,6 @@ func _process(delta: float) -> void:
func _physics_process(delta) -> void: func _physics_process(delta) -> void:
if get_tree().has_network_peer(): if get_tree().has_network_peer():
if is_network_master() and visible: if is_network_master() and visible:
look_at(get_global_mouse_position())
if "0" in VDIR: if "0" in VDIR:
if VDIR["1"]["0"]["ray"]["length"] - dimensions["collider"]["radius"] > 2 and jumpState == false: if VDIR["1"]["0"]["ray"]["length"] - dimensions["collider"]["radius"] > 2 and jumpState == false:
gravityVector = (VDIR["1"]["0"]["ray"]["position"] - user_state["global_position"]).normalized() gravityVector = (VDIR["1"]["0"]["ray"]["position"] - user_state["global_position"]).normalized()
@ -198,6 +193,11 @@ func _physics_process(delta) -> void:
if not tween.is_active(): if not tween.is_active():
move_and_slide(puppet_velocity * movementSpeed) move_and_slide(puppet_velocity * movementSpeed)
if hp <= 0:
if get_tree().is_network_server():
rpc("destroy")
func _draw(): func _draw():
for vector_type in VDIR: for vector_type in VDIR:
@ -289,7 +289,7 @@ func _on_hit_timer_timeout():
modulate = Color(1, 1, 1, 1) modulate = Color(1, 1, 1, 1)
func _on_Hitbox_area_entered(area): func _on_hitbox_area_entered(area):
if get_tree().is_network_server(): if get_tree().is_network_server():
if area.is_in_group("Player_damager") and area.get_parent().player_owner != int(name): if area.is_in_group("Player_damager") and area.get_parent().player_owner != int(name):
rpc("hit_by_damager", area.get_parent().damage) rpc("hit_by_damager", area.get_parent().damage)
@ -308,8 +308,8 @@ sync func enable() -> void:
update_shoot_mode(false) update_shoot_mode(false)
username_text_instance.visible = true username_text_instance.visible = true
visible = true visible = true
$CollisionShape2D.disabled = false $player_collider.disabled = false
$Hitbox/CollisionShape2D.disabled = false $hitbox/CollisionShape2D.disabled = false
if get_tree().has_network_peer(): if get_tree().has_network_peer():
if is_network_master(): if is_network_master():
@ -337,5 +337,3 @@ func _exit_tree() -> void:
if is_network_master(): if is_network_master():
Global.player_master = null Global.player_master = null

View File

@ -1,14 +1,24 @@
extends Sprite extends Sprite
export(int) var speed = 100
var velocity = Vector2(1, 0) var velocity = Vector2(1, 0)
var time = 0
export var amplitude = 4
export var frequency = 5
var gravitile = 5
#var velocity = Vector2(1, 0)
var player_rotation var player_rotation
export(int) var speed = 1400 #export(int) var speed = 1400
export(int) var damage = 25 export(int) var damage = 25
puppet var puppet_position setget puppet_position_set puppet var puppet_position setget puppet_position_set
puppet var puppet_velocity = Vector2(0, 0) puppet var puppet_velocity = Vector2(0, 0)
puppet var puppet_rotation = 0 puppet var puppet_rotation = 0
puppet var bullet_position setget bullet_position_set
onready var initial_position = global_position onready var initial_position = global_position
@ -24,8 +34,9 @@ func _ready() -> void:
velocity = velocity.rotated(player_rotation) velocity = velocity.rotated(player_rotation)
rotation = player_rotation rotation = player_rotation
rset("puppet_velocity", velocity) rset("puppet_velocity", velocity)
rset("puppet_rotation", rotation) #rset("puppet_rotation", rotation)
rset("puppet_position", global_position) rset("puppet_position", global_position)
rset("bullet_position", bullet_position)
visible = true visible = true
@ -33,6 +44,9 @@ func _ready() -> void:
func _process(delta: float) -> void: func _process(delta: float) -> void:
if get_tree().has_network_peer(): if get_tree().has_network_peer():
if is_network_master(): if is_network_master():
follow_sine_trajectory()
time += delta
#global_position += velocity * speed * delta
global_position += velocity * speed * delta global_position += velocity * speed * delta
else: else:
rotation = puppet_rotation rotation = puppet_rotation
@ -44,11 +58,45 @@ func puppet_position_set(new_value) -> void:
global_position = puppet_position global_position = puppet_position
func bullet_position_set(new_value) -> void:
bullet_position = new_value
global_position = bullet_position
sync func destroy() -> void: sync func destroy() -> void:
queue_free() queue_free()
func _on_Destroy_timer_timeout(): func _on_destroy_timer_timeout():
if get_tree().has_network_peer(): if get_tree().has_network_peer():
if get_tree().is_network_server(): if get_tree().is_network_server():
rpc("destroy") rpc("destroy")
func follow_line_trajectory():
velocity = Vector2(1, 0) * 10
func follow_sine_trajectory():
velocity.y = amplitude * cos(time * frequency)
velocity.x = 5
func follow_parabolic_trajectory():
velocity.x = 5
velocity.y = 1 * time * gravitile
func follow_n_parabolic_trajectory():
velocity.x = 5
velocity.y = -1 * time * gravitile
func follow_hyperbolic_trajectory():
velocity.x = gravitile * time
velocity.y = 1
func follow_n_hyperbolic_trajectory():
velocity.x = gravitile * time
velocity.y = -1

View File

@ -10,7 +10,6 @@ onready var multiplayer_config_ui = $multiplayer_configure
onready var username_text_edit = $multiplayer_configure/username_text_edit onready var username_text_edit = $multiplayer_configure/username_text_edit
onready var device_ip_address = $UI/device_ip_address onready var device_ip_address = $UI/device_ip_address
onready var start_game = $UI/start_game onready var start_game = $UI/start_game
onready var floor_ = $floor
func _ready(): func _ready():
@ -34,17 +33,14 @@ func _ready():
current_player_for_spawn_location_number = player current_player_for_spawn_location_number = player
else: else:
start_game.hide() start_game.hide()
floor_.hide()
func _process(delta: float) -> void: func _process(delta: float) -> void:
if get_tree().network_peer != null: if get_tree().network_peer != null:
if get_tree().get_network_connected_peers().size() >= (min_players - 1) and get_tree().is_network_server(): if get_tree().get_network_connected_peers().size() >= (min_players - 1) and get_tree().is_network_server():
start_game.show() start_game.show()
floor_.show()
else: else:
start_game.hide() start_game.hide()
floor_.hide()
func _player_connected(id) -> void: func _player_connected(id) -> void:

View File

@ -21,6 +21,7 @@ visible = false
shape = SubResource( 1 ) shape = SubResource( 1 )
[node name="destroy_timer" type="Timer" parent="."] [node name="destroy_timer" type="Timer" parent="."]
wait_time = 5.0
one_shot = true one_shot = true
autostart = true autostart = true

View File

@ -100,7 +100,7 @@ __meta__ = {
} }
[node name="floor" parent="." instance=ExtResource( 4 )] [node name="floor" parent="." instance=ExtResource( 4 )]
position = Vector2( 962.997, 996.068 ) position = Vector2( 960, 1096 )
scale = Vector2( 2, 1 ) scale = Vector2( 2, 1 )
[connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"] [connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"]