mirror of
https://github.com/Dariasteam/Cows-Revenge.git
synced 2026-01-23 10:25:29 +00:00
Rayo
This commit is contained in:
parent
9f62183eb5
commit
be5200df26
10 changed files with 231 additions and 76 deletions
|
|
@ -1 +1,3 @@
|
|||
filter=false
|
||||
gen_mipmaps=false
|
||||
repeat=true
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ func _on_area_body_body_enter( body ):
|
|||
|
||||
func _on_area_head_body_enter( body ):
|
||||
if (body.is_in_group("player") and body.can_receive_damage()):
|
||||
if (body.get_pos().y < get_pos().y):
|
||||
if (body.foots.get_pos().y > get_pos().y):
|
||||
print ("cabeza")
|
||||
life = 0
|
||||
die_by_jump()
|
||||
die_by_jump()
|
||||
34
enemy_1.tscn
34
enemy_1.tscn
|
|
@ -12,42 +12,42 @@
|
|||
[ext_resource path="res://malvado_caminando0008.tex" type="Texture" id=10]
|
||||
[ext_resource path="res://malvado_caminando0009.tex" type="Texture" id=11]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=17]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 8.90625, -8.09232, 8.57639, -19.4815, 26.3889, -19.4815, 26.7188, 8.39203 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=18]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 2.63889, -0.899147, 8.90625, -8.09232, 26.7188, 8.39203, 20.1215, 15.8849, 5.27778, 15.5852, 0.989584, 8.09231 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=19]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -3.29861, -5.99431, 2.63889, -0.899147, 0.989584, 8.09231, -7.91667, 2.09801, -8.24653, -3.59659 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=16]
|
||||
[sub_resource type="RectangleShape2D" id=4]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 13.0125, 38.3532 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=13]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 8.90625, -8.09232, 8.57639, -19.4815, 26.3889, -19.4815, 26.7188, 8.39203 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=14]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 2.63889, -0.899147, 8.90625, -8.09232, 26.7188, 8.39203, 20.1215, 15.8849, 5.27778, 15.5852, 0.989584, 8.09231 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=15]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -3.29861, -5.99431, 2.63889, -0.899147, 0.989584, 8.09231, -7.91667, 2.09801, -8.24653, -3.59659 )
|
||||
|
||||
[sub_resource type="SpriteFrames" id=5]
|
||||
[sub_resource type="SpriteFrames" id=8]
|
||||
|
||||
animations = [ {
|
||||
"frames": [ ExtResource( 2 ), ExtResource( 3 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ) ],
|
||||
|
|
@ -64,13 +64,13 @@ animations = [ {
|
|||
transform/pos = Vector2( 64.3, -80 )
|
||||
transform/scale = Vector2( 1.79062, 1.8 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 17 )
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1.68421, 0, 0, 1.85361, -19.4444, 6.66667 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 18 )
|
||||
shapes/1/shape = SubResource( 2 )
|
||||
shapes/1/transform = Matrix32( 1.68421, 0, 0, 1.85361, -19.4444, 6.66667 )
|
||||
shapes/1/trigger = false
|
||||
shapes/2/shape = SubResource( 19 )
|
||||
shapes/2/shape = SubResource( 3 )
|
||||
shapes/2/transform = Matrix32( 1.68421, 0, 0, 1.85361, -19.4444, 6.66667 )
|
||||
shapes/2/trigger = false
|
||||
collision/layers = 5
|
||||
|
|
@ -96,7 +96,7 @@ trigger = false
|
|||
transform/pos = Vector2( 9.60559, -33.6111 )
|
||||
transform/scale = Vector2( 0.47993, 0.112847 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 16 )
|
||||
shapes/0/shape = SubResource( 4 )
|
||||
shapes/0/transform = Matrix32( 2.41445, 0, 0, 0.77017, 0.581818, 2.46155 )
|
||||
shapes/0/trigger = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
|
|
@ -111,7 +111,7 @@ collision/mask = 34
|
|||
|
||||
transform/pos = Vector2( 0.581818, 2.46155 )
|
||||
transform/scale = Vector2( 2.41445, 0.77017 )
|
||||
shape = SubResource( 16 )
|
||||
shape = SubResource( 4 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
|
|
@ -120,13 +120,13 @@ _update_shape_index = 0
|
|||
transform/pos = Vector2( -4.07679, 1.11111 )
|
||||
transform/scale = Vector2( 0.9363, 1.08512 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 13 )
|
||||
shapes/0/shape = SubResource( 5 )
|
||||
shapes/0/transform = Matrix32( 1.79879, 0, 0, 1.7082, -16.6219, 4.86533 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 14 )
|
||||
shapes/1/shape = SubResource( 6 )
|
||||
shapes/1/transform = Matrix32( 1.79879, 0, 0, 1.7082, -16.6219, 4.86533 )
|
||||
shapes/1/trigger = false
|
||||
shapes/2/shape = SubResource( 15 )
|
||||
shapes/2/shape = SubResource( 7 )
|
||||
shapes/2/transform = Matrix32( 1.79879, 0, 0, 1.7082, -16.6219, 4.86533 )
|
||||
shapes/2/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
|
|
@ -149,7 +149,7 @@ trigger = false
|
|||
[node name="Sprite" type="AnimatedSprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( 3.8147e-06, 0 )
|
||||
frames = SubResource( 5 )
|
||||
frames = SubResource( 8 )
|
||||
animation = "walking"
|
||||
frame = 8
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ var walk_speed = 0
|
|||
|
||||
onready var shooter = get_node("shooter")
|
||||
onready var sprite = get_node("sprite")
|
||||
onready var foots = get_node("foots")
|
||||
|
||||
var can_jump = true
|
||||
var jumping = false
|
||||
|
|
@ -62,9 +63,7 @@ func on_opacity_high ():
|
|||
|
||||
func on_receive_damage ():
|
||||
if (can_receive_damage()):
|
||||
print ("invulnerabilidad on")
|
||||
show_damage()
|
||||
|
||||
|
||||
func can_receive_damage ():
|
||||
return receive_damage
|
||||
|
|
@ -91,7 +90,6 @@ func show_damage ():
|
|||
yield(t1, "timeout")
|
||||
t2.start()
|
||||
yield(t2, "timeout")
|
||||
print ("invulnerabilidad off")
|
||||
change_collision()
|
||||
|
||||
func can_jump_more ():
|
||||
|
|
|
|||
49
player.tscn
49
player.tscn
|
|
@ -1,11 +1,12 @@
|
|||
[gd_scene load_steps=10 format=1]
|
||||
[gd_scene load_steps=11 format=1]
|
||||
|
||||
[ext_resource path="res://player.gd" type="Script" id=1]
|
||||
[ext_resource path="res://shooter.gd" type="Script" id=2]
|
||||
[ext_resource path="res://vaca_idle_1.tex" type="Texture" id=3]
|
||||
[ext_resource path="res://vaca_idle_2.tex" type="Texture" id=4]
|
||||
[ext_resource path="res://vaca_idle_3.tex" type="Texture" id=5]
|
||||
[ext_resource path="res://vaca_idle_4.tex" type="Texture" id=6]
|
||||
[ext_resource path="res://ray_milk.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://vaca_idle_1.tex" type="Texture" id=4]
|
||||
[ext_resource path="res://vaca_idle_2.tex" type="Texture" id=5]
|
||||
[ext_resource path="res://vaca_idle_3.tex" type="Texture" id=6]
|
||||
[ext_resource path="res://vaca_idle_4.tex" type="Texture" id=7]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
|
||||
|
|
@ -20,7 +21,7 @@ extents = Vector2( 12.363, 15.2052 )
|
|||
[sub_resource type="SpriteFrames" id=3]
|
||||
|
||||
animations = [ {
|
||||
"frames": [ ExtResource( 3 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 5 ), ExtResource( 4 ) ],
|
||||
"frames": [ ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 6 ), ExtResource( 5 ) ],
|
||||
"loop": true,
|
||||
"name": "Idle",
|
||||
"speed": 10.0
|
||||
|
|
@ -55,33 +56,10 @@ transform/scale = Vector2( 0.5, 0.5 )
|
|||
script/script = ExtResource( 2 )
|
||||
SHOOT_CADENCE = 0.1
|
||||
|
||||
[node name="Particles2D1" type="Particles2D" parent="shooter"]
|
||||
[node name="ray" parent="shooter" instance=ExtResource( 3 )]
|
||||
|
||||
visibility/visible = false
|
||||
transform/pos = Vector2( -17.0383, 8.60367 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
config/amount = 32
|
||||
config/lifetime = 6.0
|
||||
config/process_mode = 1
|
||||
config/local_space = false
|
||||
config/explosiveness = 1.1
|
||||
params/direction = 120.0
|
||||
params/spread = 30.0
|
||||
params/linear_velocity = 20.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 5.0
|
||||
params/final_size = 15.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/initial_size = 1.0
|
||||
transform/pos = Vector2( -4.25251, 3.87422 )
|
||||
layer_mask = 30
|
||||
|
||||
[node name="Collision_Normal" type="CollisionPolygon2D" parent="."]
|
||||
|
||||
|
|
@ -104,7 +82,7 @@ _update_shape_index = 1
|
|||
|
||||
frames = SubResource( 3 )
|
||||
animation = "Idle"
|
||||
frame = 3
|
||||
frame = 1
|
||||
playing = true
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="sprite"]
|
||||
|
|
@ -128,6 +106,11 @@ drag_margin/top = 0.2
|
|||
drag_margin/right = 0.2
|
||||
drag_margin/bottom = 0.2
|
||||
|
||||
[node name="foots" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -0.0271127, 37.1198 )
|
||||
transform/scale = Vector2( 0.885237, 0.0763853 )
|
||||
|
||||
[connection signal="looking_left" from="." to="shooter" method="_on_KinematicBody2D_looking_left"]
|
||||
|
||||
[connection signal="looking_right" from="." to="shooter" method="_on_KinematicBody2D_looking_right"]
|
||||
|
|
|
|||
16
ray.gd
Normal file
16
ray.gd
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
extends RayCast2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
pass
|
||||
|
||||
func _fixed_process(delta):
|
||||
if (is_colliding()):
|
||||
print ("Colliding")
|
||||
else:
|
||||
print ("Not colliding")
|
||||
96
ray_milk.tscn
Normal file
96
ray_milk.tscn
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
[gd_scene load_steps=6 format=1]
|
||||
|
||||
[ext_resource path="res://rayo_leche.gd" type="Script" id=1]
|
||||
[ext_resource path="res://corazon2.tex" type="Texture" id=2]
|
||||
[ext_resource path="res://corazon_vacio.png" type="Texture" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 32, 32 )
|
||||
|
||||
[sub_resource type="GDScript" id=2]
|
||||
|
||||
script/source = "extends Area2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = \"textvar\"
|
||||
|
||||
func _ready():
|
||||
# Called every time the node is added to the scene.
|
||||
# Initialization here
|
||||
pass
|
||||
|
||||
func _fixed_process(delta):
|
||||
set_enable_monitoring(false)
|
||||
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(0.2)
|
||||
t.set_one_shot(true)
|
||||
self.add_child(t)
|
||||
t.start()
|
||||
yield(t, \"timeout\")
|
||||
|
||||
set_enable_monitoring(true)
|
||||
set_fixed_process(false)
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if (body.is_in_group(\"enemy\")):
|
||||
body.decrease_life(1)
|
||||
set_fixed_process(true)
|
||||
|
||||
"
|
||||
|
||||
[node name="ray" type="RayCast2D"]
|
||||
|
||||
enabled = true
|
||||
cast_to = Vector2( 10000, 0 )
|
||||
layer_mask = 63
|
||||
type_mask = 31
|
||||
script/script = ExtResource( 1 )
|
||||
damage = 10
|
||||
|
||||
[node name="end" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( -16, -16 )
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="end"]
|
||||
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
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
|
||||
monitorable = false
|
||||
script/script = SubResource( 2 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="end/Area2D"]
|
||||
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="origin" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( -16, -16 )
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="middle" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0, -32 )
|
||||
transform/scale = Vector2( 0.5, 4.26667 )
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( 10, 10, 0, 15 )
|
||||
|
||||
[connection signal="body_enter" from="end/Area2D" to="end/Area2D" method="_on_Area2D_body_enter"]
|
||||
|
||||
|
||||
40
rayo_leche.gd
Normal file
40
rayo_leche.gd
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
extends RayCast2D
|
||||
|
||||
onready var middle = get_node("middle")
|
||||
onready var end = get_node("end")
|
||||
onready var origin = get_node("origin")
|
||||
onready var area = get_node("end/Area2D")
|
||||
|
||||
export var damage = 10
|
||||
|
||||
var enabled = false
|
||||
const MAX_DISTANCE = 100000
|
||||
var distance = MAX_DISTANCE
|
||||
|
||||
func look_left():
|
||||
distance = -MAX_DISTANCE
|
||||
middle.set_rot(PI)
|
||||
|
||||
func look_right():
|
||||
distance = MAX_DISTANCE
|
||||
middle.set_rot(0)
|
||||
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
|
||||
func enable():
|
||||
enabled = true
|
||||
|
||||
func disable():
|
||||
enabled = false
|
||||
middle.set_region_rect(Rect2(Vector2(0,0),Vector2(0,0)))
|
||||
end.set_global_pos(get_global_pos())
|
||||
|
||||
func _fixed_process(delta):
|
||||
if (enabled):
|
||||
area.set_enable_monitoring(true)
|
||||
set_cast_to(Vector2(distance, 0))
|
||||
var end_point = Vector2 (abs(get_global_pos().x - get_collision_point().x) * 2, 10)
|
||||
middle.set_region_rect(Rect2(get_pos(),end_point))
|
||||
end.set_global_pos(get_collision_point())
|
||||
origin.set_pos(get_pos())
|
||||
60
shooter.gd
60
shooter.gd
|
|
@ -4,41 +4,61 @@ extends Node2D
|
|||
# var a = 2
|
||||
# var b = "textvar"
|
||||
const BULLET = preload("res://bullet.tscn")
|
||||
export var SHOOT_CADENCE = 0.5
|
||||
|
||||
enum WEAPONS {
|
||||
regular,
|
||||
laser
|
||||
}
|
||||
|
||||
var weapon = WEAPONS.laser
|
||||
var shooting = false
|
||||
|
||||
onready var player = get_parent()
|
||||
|
||||
export var SHOOT_CADENCE = 0.5
|
||||
onready var instanced_ray = get_node("ray")
|
||||
|
||||
var shoot_dir = Vector2(500,-250)
|
||||
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
|
||||
func _fixed_process(delta):
|
||||
|
||||
func shoot_regular ():
|
||||
var instanced_bullet = BULLET.instance()
|
||||
get_parent().get_parent().add_child(instanced_bullet)
|
||||
instanced_bullet.set_global_pos(get_global_pos())
|
||||
instanced_bullet.set_linear_velocity(shoot_dir + Vector2(rand_range(-100, 100), rand_range(-100, 100)))
|
||||
|
||||
shooting = true
|
||||
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(SHOOT_CADENCE)
|
||||
t.set_one_shot(true)
|
||||
self.add_child(t)
|
||||
t.start()
|
||||
yield(t, "timeout")
|
||||
shooting = false
|
||||
player.decrease_milk()
|
||||
|
||||
func shoot_laser():
|
||||
player.decrease_milk()
|
||||
|
||||
func _fixed_process(delta):
|
||||
if (Input.is_action_pressed("ui_shoot") and !shooting and player.get_milk_level() > 0):
|
||||
|
||||
var instanced_bullet = BULLET.instance()
|
||||
get_parent().get_parent().add_child(instanced_bullet)
|
||||
instanced_bullet.set_global_pos(get_global_pos())
|
||||
instanced_bullet.set_linear_velocity(shoot_dir + Vector2(rand_range(-100, 100), rand_range(-100, 100)))
|
||||
|
||||
shooting = true
|
||||
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(SHOOT_CADENCE)
|
||||
t.set_one_shot(true)
|
||||
self.add_child(t)
|
||||
t.start()
|
||||
yield(t, "timeout")
|
||||
shooting = false
|
||||
player.decrease_milk()
|
||||
|
||||
if (weapon == WEAPONS.regular):
|
||||
shoot_regular()
|
||||
elif (weapon == WEAPONS.laser):
|
||||
instanced_ray.enable()
|
||||
shoot_laser()
|
||||
else:
|
||||
instanced_ray.disable()
|
||||
|
||||
func _on_KinematicBody2D_looking_left():
|
||||
shoot_dir = Vector2(-500,-250)
|
||||
set_pos(Vector2(-30, 0))
|
||||
instanced_ray.look_left()
|
||||
|
||||
func _on_KinematicBody2D_looking_right():
|
||||
shoot_dir = Vector2(500,-250)
|
||||
set_pos(Vector2(30, 0))
|
||||
instanced_ray.look_right()
|
||||
|
|
|
|||
2
top.tscn
2
top.tscn
|
|
@ -51,7 +51,7 @@ __meta__ = {
|
|||
] instance=ExtResource( 2 )]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -2240, -3104 )
|
||||
transform/pos = Vector2( 640, -3744 )
|
||||
JUMP_SPEED = 600
|
||||
MAX_JUMP_TIME = 25
|
||||
max_milk = 100
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue