diff --git a/Rocket.tscn b/Rocket.tscn index c8f9534..f93a954 100644 --- a/Rocket.tscn +++ b/Rocket.tscn @@ -1,33 +1,36 @@ -[gd_scene load_steps=7 format=1] +[gd_scene load_steps=9 format=1] [ext_resource path="res://rocket.gd" type="Script" id=1] [ext_resource path="res://rocket.png" type="Texture" id=2] [ext_resource path="res://DebugDraw.tscn" type="PackedScene" id=3] +[ext_resource path="res://skull.png" type="Texture" id=4] -[sub_resource type="ConvexPolygonShape2D" id=3] +[sub_resource type="ConvexPolygonShape2D" id=1] custom_solver_bias = 0.0 -points = Vector2Array( -11.3815, 0.727529, -10.5982, -4.33918, -6.21178, -8.37972, -0.572069, -11.1376, 5.06765, -8.76453, 9.76742, -4.9164, 10.7074, 0.535122, 6.24971, 7.12876, -6.25212, 6.97128 ) - -[sub_resource type="RectangleShape2D" id=4] - -custom_solver_bias = 0.0 -extents = Vector2( 10, 10 ) +points = Vector2Array( -11.3815, 0.727529, -10.5982, -4.33918, -6.21178, -8.37972, -0.572069, -11.1376, 5.06765, -8.76453, 9.76742, -4.9164, 10.7074, 0.535122, 6.12636, 10.0797, -6.34531, 10.0372 ) [sub_resource type="ColorRamp" id=2] offsets = FloatArray( 0, 0.502924, 0.994152 ) colors = ColorArray( 0.992188, 1, 0, 1, 0.90625, 0.390511, 0.0141602, 1, 0.90625, 0.0106201, 0.0106201, 1 ) +[sub_resource type="ConvexPolygonShape2D" id=3] + +custom_solver_bias = 0.0 +points = Vector2Array( -0.383606, -41.7704, 7.97868, -32.9347, 17.1299, -17.7879, 18.3921, 2.72333, 11.7654, 32.3858, -12.0592, 32.7013, -18.8438, 2.72333, -15.8459, -16.0524, -10.0081, -29.4636 ) + +[sub_resource type="ConvexPolygonShape2D" id=4] + +custom_solver_bias = 0.0 +points = Vector2Array( 8.6098, 32.5436, 10.5032, 39.3281, -10.6392, 39.3281, -8.43033, 32.5436 ) + [node name="Rocket" type="RigidBody2D"] input/pickable = false -shapes/0/shape = SubResource( 3 ) +shapes/0/shape = SubResource( 1 ) shapes/0/transform = Matrix32( 1.51812, 0, 0, 3.70819, 0.571488, 1.47728 ) shapes/0/trigger = false -shapes/1/shape = SubResource( 4 ) -shapes/1/transform = Matrix32( 0.999501, 0, 0, 0.549788, 0.569656, 33.3204 ) -shapes/1/trigger = false collision/layers = 1 collision/mask = 1 mode = 0 @@ -82,21 +85,14 @@ texture = ExtResource( 2 ) [node name="ShipCollision" type="CollisionPolygon2D" parent="."] +visibility/visible = false transform/pos = Vector2( 0.571488, 1.47728 ) transform/scale = Vector2( 1.51812, 3.70819 ) build_mode = 0 -polygon = Vector2Array( -11.3815, 0.727529, -10.5982, -4.33918, -6.21178, -8.37972, -0.572069, -11.1376, 5.06765, -8.76453, 9.76742, -4.9164, 10.7074, 0.535122, 6.24971, 7.12876, -6.25212, 6.97128 ) +polygon = Vector2Array( -11.3815, 0.727529, -10.5982, -4.33918, -6.21178, -8.37972, -0.572069, -11.1376, 5.06765, -8.76453, 9.76742, -4.9164, 10.7074, 0.535122, 6.12636, 10.0797, -6.34531, 10.0372 ) shape_range = Vector2( 0, 0 ) trigger = false -[node name="FootCollision" type="CollisionShape2D" parent="."] - -transform/pos = Vector2( 0.569656, 33.3204 ) -transform/scale = Vector2( 0.999501, 0.549788 ) -shape = SubResource( 4 ) -trigger = false -_update_shape_index = 1 - [node name="debug_draw" parent="." instance=ExtResource( 3 )] [node name="Camera2D" type="Camera2D" parent="."] @@ -132,4 +128,45 @@ percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +[node name="ShipArea" type="Area2D" parent="."] + +input/pickable = true +shapes/0/shape = SubResource( 3 ) +shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 ) +shapes/0/trigger = false +gravity_vec = Vector2( 0, 1 ) +gravity = 98.0 +linear_damp = 0.1 +angular_damp = 1.0 + +[node name="ShipAreaCollision" type="CollisionPolygon2D" parent="ShipArea"] + +build_mode = 0 +polygon = Vector2Array( -10.0081, -29.4636, -15.8459, -16.0524, -18.8438, 2.72333, -12.0592, 32.7013, 11.7654, 32.3858, 18.3921, 2.72333, 17.1299, -17.7879, 7.97868, -32.9347, -0.383606, -41.7704 ) +shape_range = Vector2( 0, 0 ) +trigger = false + +[node name="FootArea" type="Area2D" parent="."] + +input/pickable = true +shapes/0/shape = SubResource( 4 ) +shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 ) +shapes/0/trigger = false +gravity_vec = Vector2( 0, 1 ) +gravity = 98.0 +linear_damp = 0.1 +angular_damp = 1.0 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="FootArea"] + +build_mode = 0 +polygon = Vector2Array( -8.43033, 32.5436, -10.6392, 39.3281, 10.5032, 39.3281, 8.6098, 32.5436 ) +shape_range = Vector2( 0, 0 ) +trigger = false + +[node name="Skull" type="Sprite" parent="."] + +transform/scale = Vector2( 0.1, 0.1 ) +texture = ExtResource( 4 ) + diff --git a/rocket.gd b/rocket.gd index 590c956..01fcb7b 100644 --- a/rocket.gd +++ b/rocket.gd @@ -2,12 +2,15 @@ extends RigidBody2D var thrust = Vector2(0, 450) var torque = 20000 +var shipoverlaps +var footoverlaps func _ready(): #pass set_process(true) set_contact_monitor(true) set_max_contacts_reported(3) + get_node("Skull").hide() func _integrate_forces(state): if Input.is_action_pressed("thrust"): @@ -22,5 +25,14 @@ func _integrate_forces(state): var t = Input.is_action_pressed("bear_right") - Input.is_action_pressed("bear_left") set_applied_torque(torque * t) + func _process(delta): - print(get_colliding_bodies()) \ No newline at end of file + shipoverlaps = get_node("ShipArea").get_overlapping_bodies() + footoverlaps = get_node("FootArea").get_overlapping_bodies() + if (shipoverlaps.size() > 1): + get_node("Skull").show() + else: + get_node("Skull").hide() + for i in footoverlaps: + if(i.get_name() == "Moon"): + get_node("Skull").show() \ No newline at end of file diff --git a/skull.png b/skull.png new file mode 100644 index 0000000..6a4bd34 Binary files /dev/null and b/skull.png differ