enemy.tscn 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. [gd_scene load_steps=12 format=1]
  2. [ext_resource path="res://enemy.gd" type="Script" id=1]
  3. [ext_resource path="res://enemy.png" type="Texture" id=2]
  4. [ext_resource path="res://bullet.png" type="Texture" id=3]
  5. [ext_resource path="res://sound_explode.wav" type="Sample" id=4]
  6. [ext_resource path="res://sound_hit.wav" type="Sample" id=5]
  7. [sub_resource type="CircleShape2D" id=1]
  8. custom_solver_bias = 0.0
  9. radius = 14.0
  10. [sub_resource type="Animation" id=2]
  11. resource/name = "explode"
  12. length = 6.0
  13. loop = false
  14. step = 0.0
  15. tracks/0/type = "value"
  16. tracks/0/path = NodePath("sprite:visibility/self_opacity")
  17. tracks/0/interp = 1
  18. tracks/0/keys = { "cont":true, "times":FloatArray( 3.58422, 4.33851 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] }
  19. tracks/1/type = "value"
  20. tracks/1/path = NodePath("sprite:frame")
  21. tracks/1/interp = 1
  22. tracks/1/keys = { "cont":true, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 4 ] }
  23. tracks/2/type = "value"
  24. tracks/2/path = NodePath("Particles2D:config/emitting")
  25. tracks/2/interp = 1
  26. tracks/2/keys = { "cont":false, "times":FloatArray( 3.47394 ), "transitions":FloatArray( 1 ), "values":[ true ] }
  27. tracks/3/type = "method"
  28. tracks/3/path = NodePath(".")
  29. tracks/3/interp = 1
  30. tracks/3/keys = { "times":FloatArray( 3.20357, 5.07305 ), "transitions":FloatArray( 1, 1 ), "values":[ { "args":[ ], "method":"_pre_explode" }, { "args":[ ], "method":"_die" } ] }
  31. [sub_resource type="Animation" id=3]
  32. length = 6.75
  33. loop = true
  34. step = 0.25
  35. tracks/0/type = "value"
  36. tracks/0/path = NodePath("sprite:frame")
  37. tracks/0/interp = 1
  38. tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 5, 6, 5, 6, 5, 6, 7, 6, 7, 5 ] }
  39. [sub_resource type="Animation" id=4]
  40. resource/name = "walk"
  41. length = 1.25
  42. loop = true
  43. step = 0.25
  44. tracks/0/type = "value"
  45. tracks/0/path = NodePath("sprite:frame")
  46. tracks/0/interp = 1
  47. tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 4, 0 ] }
  48. [sub_resource type="ColorRamp" id=5]
  49. offsets = FloatArray( 0, 1 )
  50. colors = ColorArray( 1, 0.884956, 0.823009, 1, 0.768627, 0.389381, 0, 0 )
  51. [sub_resource type="SampleLibrary" id=6]
  52. samples/explode = { "db":0.0, "pitch":1.0, "sample":ExtResource( 4 ) }
  53. samples/hit = { "db":0.0, "pitch":1.0, "sample":ExtResource( 5 ) }
  54. [node name="enemy" type="RigidBody2D"]
  55. input/pickable = false
  56. shapes/0/shape = SubResource( 1 )
  57. shapes/0/transform = Matrix32( 1, 0, 0, 1, -1.08072, -2.16144 )
  58. shapes/0/trigger = false
  59. shapes/1/shape = SubResource( 1 )
  60. shapes/1/transform = Matrix32( 1, 0, 0, 1, 6.48431, 3.24216 )
  61. shapes/1/trigger = false
  62. shapes/2/shape = SubResource( 1 )
  63. shapes/2/transform = Matrix32( 1, 0, 0, 1, -12.495, 3.53415 )
  64. shapes/2/trigger = false
  65. collision/layers = 1
  66. collision/mask = 1
  67. mode = 2
  68. mass = 1.0
  69. friction = 0.0
  70. bounce = 0.0
  71. gravity_scale = 1.0
  72. custom_integrator = false
  73. continuous_cd = 0
  74. contacts_reported = 4
  75. contact_monitor = false
  76. sleeping = false
  77. can_sleep = true
  78. velocity/linear = Vector2( 0, 0 )
  79. velocity/angular = 0.0
  80. damp_override/linear = -1.0
  81. damp_override/angular = -1.0
  82. script/script = ExtResource( 1 )
  83. [node name="enabler" type="VisibilityEnabler2D" parent="."]
  84. transform/pos = Vector2( 16.2569, 11.0034 )
  85. transform/scale = Vector2( 23.5056, 10.8629 )
  86. rect = Rect2( -10, -10, 20, 20 )
  87. enabler/pause_animations = true
  88. enabler/freeze_bodies = true
  89. enabler/pause_particles = true
  90. enabler/process_parent = false
  91. enabler/fixed_process_parent = false
  92. [node name="anim" type="AnimationPlayer" parent="."]
  93. playback/process_mode = 1
  94. playback/default_blend_time = 0.0
  95. root/root = NodePath("..")
  96. anims/explode = SubResource( 2 )
  97. anims/idle = SubResource( 3 )
  98. anims/walk = SubResource( 4 )
  99. playback/active = true
  100. playback/speed = 3.0
  101. blend_times = [ ]
  102. autoplay = ""
  103. [node name="sprite" type="Sprite" parent="."]
  104. texture = ExtResource( 2 )
  105. hframes = 8
  106. frame = 4
  107. [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
  108. transform/pos = Vector2( -1.08072, -2.16144 )
  109. shape = SubResource( 1 )
  110. trigger = false
  111. _update_shape_index = -1
  112. [node name="CollisionShape2D 2" type="CollisionShape2D" parent="."]
  113. transform/pos = Vector2( 6.48431, 3.24216 )
  114. shape = SubResource( 1 )
  115. trigger = false
  116. _update_shape_index = -1
  117. [node name="CollisionShape2D 3" type="CollisionShape2D" parent="."]
  118. transform/pos = Vector2( -12.495, 3.53415 )
  119. shape = SubResource( 1 )
  120. trigger = false
  121. _update_shape_index = -1
  122. [node name="raycast_left" type="RayCast2D" parent="."]
  123. transform/pos = Vector2( -33.2868, -9.34363 )
  124. enabled = true
  125. cast_to = Vector2( 0, 45 )
  126. layer_mask = 1
  127. type_mask = 15
  128. [node name="raycast_right" type="RayCast2D" parent="."]
  129. transform/pos = Vector2( 29.1987, -9.34363 )
  130. enabled = true
  131. cast_to = Vector2( 0, 45 )
  132. layer_mask = 1
  133. type_mask = 15
  134. [node name="Particles2D" type="Particles2D" parent="."]
  135. visibility/self_opacity = 0.121212
  136. visibility/blend_mode = 1
  137. config/amount = 32
  138. config/lifetime = 0.5
  139. config/emit_timeout = 0.5
  140. config/emitting = false
  141. config/explosiveness = 0.1
  142. config/texture = ExtResource( 3 )
  143. params/direction = 0.0
  144. params/spread = 180.0
  145. params/linear_velocity = 90.0
  146. params/spin_velocity = 2.0
  147. params/orbit_velocity = 0.0
  148. params/gravity_direction = 0.0
  149. params/gravity_strength = 9.8
  150. params/radial_accel = 0.0
  151. params/tangential_accel = 0.0
  152. params/damping = 0.0
  153. params/initial_angle = 0.0
  154. params/initial_size = 2.0
  155. params/final_size = 3.0
  156. params/hue_variation = 0.0
  157. params/anim_speed_scale = 1.0
  158. params/anim_initial_pos = 0.0
  159. randomness/spin_velocity = 1.0
  160. color/color_ramp = SubResource( 5 )
  161. [node name="sound" type="SamplePlayer2D" parent="."]
  162. params/volume_db = 0.0
  163. params/pitch_scale = 1.0
  164. params/attenuation/min_distance = 1.0
  165. params/attenuation/max_distance = 2048.0
  166. params/attenuation/distance_exp = 1.0
  167. config/polyphony = 3
  168. config/samples = SubResource( 6 )
  169. config/pitch_random = 0.0