mirror of
https://github.com/Dariasteam/Cows-Revenge.git
synced 2026-01-23 02:15:17 +00:00
Commit inicial
This commit is contained in:
commit
b95d7a9f8a
16 changed files with 939 additions and 0 deletions
254
All.tscn
Normal file
254
All.tscn
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
[gd_scene load_steps=7 format=1]
|
||||
|
||||
[ext_resource path="res://Controles.gd" type="Script" id=1]
|
||||
[ext_resource path="res://top.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://icon.png" type="Texture" id=3]
|
||||
[ext_resource path="res://tile.png" type="Texture" id=4]
|
||||
|
||||
[sub_resource type="Environment" id=1]
|
||||
|
||||
ambient_light/enabled = false
|
||||
ambient_light/color = Color( 0, 0, 0, 1 )
|
||||
ambient_light/energy = 1.0
|
||||
fxaa/enabled = false
|
||||
background/mode = 1
|
||||
background/color = Color( 0, 0, 0, 1 )
|
||||
background/energy = 1.0
|
||||
background/scale = 1.0
|
||||
background/glow = 0.0
|
||||
background/canvas_max_layer = null
|
||||
glow/enabled = false
|
||||
glow/blur_passes = 1
|
||||
glow/blur_scale = 1
|
||||
glow/blur_strength = 1
|
||||
glow/blur_blend_mode = null
|
||||
glow/bloom = 0.0
|
||||
glow/bloom_treshold = 0.5
|
||||
dof_blur/enabled = false
|
||||
dof_blur/blur_passes = 1
|
||||
dof_blur/begin = 100.0
|
||||
dof_blur/range = 10.0
|
||||
hdr/enabled = false
|
||||
hdr/tonemapper = 0
|
||||
hdr/exposure = 0.4
|
||||
hdr/white = 1.0
|
||||
hdr/glow_treshold = 0.95
|
||||
hdr/glow_scale = 0.2
|
||||
hdr/min_luminance = 0.4
|
||||
hdr/max_luminance = 8.0
|
||||
hdr/exposure_adj_speed = 0.5
|
||||
fog/enabled = false
|
||||
fog/begin = 100.0
|
||||
fog/begin_color = Color( 0, 0, 0, 1 )
|
||||
fog/end_color = Color( 0, 0, 0, 1 )
|
||||
fog/attenuation = 1.0
|
||||
fog/bg = true
|
||||
bcs/enabled = false
|
||||
bcs/brightness = 1.0
|
||||
bcs/contrast = 1.0
|
||||
bcs/saturation = 1.0
|
||||
srgb/enabled = false
|
||||
|
||||
[sub_resource type="World" id=2]
|
||||
|
||||
environment = SubResource( 1 )
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
script/script = ExtResource( 1 )
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 0.0
|
||||
margin/top = 0.0
|
||||
margin/right = 1280.0
|
||||
margin/bottom = 768.0
|
||||
|
||||
[node name="Viewport" type="Viewport" parent="Control"]
|
||||
|
||||
rect = Rect2( 0, 0, 1280, 768 )
|
||||
own_world = true
|
||||
world = SubResource( 2 )
|
||||
transparent_bg = false
|
||||
render_target/enabled = false
|
||||
render_target/v_flip = false
|
||||
render_target/clear_on_new_frame = true
|
||||
render_target/filter = false
|
||||
render_target/gen_mipmaps = false
|
||||
render_target/update_mode = 2
|
||||
audio_listener/enable_2d = false
|
||||
audio_listener/enable_3d = false
|
||||
physics/object_picking = false
|
||||
gui/disable_input = false
|
||||
|
||||
[node name="Node2D" parent="Control/Viewport" instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Buttons" type="Node2D" parent="Control"]
|
||||
|
||||
[node name="Bttn_U" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 160, 320 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
normal = ExtResource( 3 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_A" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 1088, 576 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
normal = ExtResource( 3 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_AS" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 1088, 416 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
normal = ExtResource( 3 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_S" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 896, 576 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
normal = ExtResource( 3 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_D" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 160, 576 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
normal = ExtResource( 3 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_DR" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 288, 576 )
|
||||
transform/scale = Vector2( 0.25, 0.25 )
|
||||
normal = ExtResource( 4 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_DL" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 32, 576 )
|
||||
transform/scale = Vector2( 0.25, 0.25 )
|
||||
normal = ExtResource( 4 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_R" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 288, 448 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
normal = ExtResource( 3 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_L" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
transform/pos = Vector2( 32, 448 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
normal = ExtResource( 3 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_U" to="." method="_on_Bttn_U_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_U" to="." method="_on_Bttn_U_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_A" to="." method="_on_Bttn_A_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_A" to="." method="_on_Bttn_A_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_AS" to="." method="_on_Bttn_AS_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_AS" to="." method="_on_Bttn_AS_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_S" to="." method="_on_Bttn_S_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_S" to="." method="_on_Bttn_S_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_D" to="." method="_on_Bttn_D_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_D" to="." method="_on_Bttn_D_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_DR" to="." method="_on_Bttn_DR_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_DR" to="." method="_on_Bttn_DR_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_DL" to="." method="_on_Bttn_DL_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_DL" to="." method="_on_Bttn_DL_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_R" to="." method="_on_Bttn_R_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_R" to="." method="_on_Bttn_R_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_L" to="." method="_on_Bttn_L_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_L" to="." method="_on_Bttn_L_released"]
|
||||
|
||||
|
||||
78
Controles.gd
Normal file
78
Controles.gd
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
extends Node2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
# UP
|
||||
func _on_Bttn_U_pressed():
|
||||
Input.action_press("ui_up")
|
||||
|
||||
func _on_Bttn_U_released():
|
||||
Input.action_release("ui_up")
|
||||
|
||||
# DOWN
|
||||
func _on_Bttn_D_pressed():
|
||||
Input.action_press("ui_down")
|
||||
|
||||
func _on_Bttn_D_released():
|
||||
Input.action_release("ui_down")
|
||||
|
||||
# RIGHT
|
||||
func _on_Bttn_R_pressed():
|
||||
Input.action_press("ui_right")
|
||||
|
||||
func _on_Bttn_R_released():
|
||||
Input.action_release("ui_right")
|
||||
|
||||
# LEFT
|
||||
func _on_Bttn_L_pressed():
|
||||
Input.action_press("ui_left")
|
||||
|
||||
func _on_Bttn_L_released():
|
||||
Input.action_release("ui_left")
|
||||
|
||||
# JUMP
|
||||
func _on_Bttn_A_pressed():
|
||||
Input.action_press("ui_jump")
|
||||
|
||||
func _on_Bttn_A_released():
|
||||
Input.action_release("ui_jump")
|
||||
|
||||
|
||||
func _ready():
|
||||
pass
|
||||
|
||||
# DOWN_RIGHT
|
||||
func _on_Bttn_DR_pressed():
|
||||
Input.action_press("ui_down")
|
||||
Input.action_press("ui_right")
|
||||
|
||||
func _on_Bttn_DR_released():
|
||||
Input.action_release("ui_right")
|
||||
Input.action_release("ui_down")
|
||||
|
||||
# DOWN_LEFT
|
||||
func _on_Bttn_DL_pressed():
|
||||
Input.action_press("ui_down")
|
||||
Input.action_press("ui_left")
|
||||
|
||||
func _on_Bttn_DL_released():
|
||||
Input.action_release("ui_left")
|
||||
Input.action_release("ui_down")
|
||||
|
||||
# SHOOT
|
||||
func _on_Bttn_S_pressed():
|
||||
Input.action_press("ui_shoot")
|
||||
|
||||
func _on_Bttn_S_released():
|
||||
Input.action_release("ui_shoot")
|
||||
|
||||
# MIX
|
||||
func _on_Bttn_AS_pressed():
|
||||
Input.action_press("ui_jump")
|
||||
Input.action_press("ui_shoot")
|
||||
|
||||
func _on_Bttn_AS_released():
|
||||
Input.action_release("ui_jump")
|
||||
Input.action_release("ui_shoot")
|
||||
10
Controles.tres.gd
Normal file
10
Controles.tres.gd
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
extends Node2D
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
func _on_button_pressed():
|
||||
pritn("asd")
|
||||
|
||||
func _ready():
|
||||
get_node("Bttn_U").connect("pressed",self,"_on_button_pressed")
|
||||
107
Movimiento.gd
Normal file
107
Movimiento.gd
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
extends KinematicBody2D
|
||||
|
||||
signal looking_left
|
||||
signal looking_right
|
||||
|
||||
const GRAVITY = 3000.0
|
||||
|
||||
const FLYING_MOVEMENT_SPEED = 1
|
||||
const JUMP_SPEED = 500
|
||||
const SLIDE_LEVEL = 40
|
||||
const MAX_JUMP_TIME = 60
|
||||
const JUMP_CORRECTION_LEVEL = 1
|
||||
|
||||
const MAX_WALK_SPEED = 350
|
||||
const WALK_SPEED_INCREMENT = 20
|
||||
var walk_speed = 0
|
||||
|
||||
onready var shooter = get_node("shooter")
|
||||
onready var sprite = get_node("sprite")
|
||||
|
||||
var can_jump = true
|
||||
var jumping = false
|
||||
var velocity = Vector2()
|
||||
var jump_time = 0
|
||||
var jump_key_pressed = false
|
||||
|
||||
func can_jump_more ():
|
||||
return jump_time > 0
|
||||
|
||||
func horizontal_movement_amount ():
|
||||
if (is_colliding() and get_collision_normal().x != 0):
|
||||
return 0
|
||||
else:
|
||||
if (walk_speed < MAX_WALK_SPEED):
|
||||
walk_speed += WALK_SPEED_INCREMENT
|
||||
return walk_speed
|
||||
|
||||
func _fixed_process(delta):
|
||||
|
||||
|
||||
if (jumping):
|
||||
jump_time -= JUMP_CORRECTION_LEVEL
|
||||
velocity.y += delta * GRAVITY
|
||||
|
||||
# Salto
|
||||
if (Input.is_action_pressed("ui_jump")):
|
||||
if (jumping and can_jump_more() and jump_key_pressed):
|
||||
velocity.y = - JUMP_SPEED + (MAX_JUMP_TIME - jump_time) * 20
|
||||
jumping = true
|
||||
elif(can_jump):
|
||||
velocity.y = - JUMP_SPEED
|
||||
jump_time = MAX_JUMP_TIME
|
||||
can_jump = false
|
||||
jumping = true
|
||||
jump_key_pressed = true
|
||||
else:
|
||||
jump_key_pressed = false
|
||||
|
||||
# Movimiento horizontal
|
||||
if (Input.is_action_pressed("ui_left")):
|
||||
emit_signal("looking_left");
|
||||
velocity.x = - horizontal_movement_amount()
|
||||
|
||||
elif (Input.is_action_pressed("ui_right")):
|
||||
velocity.x = horizontal_movement_amount()
|
||||
emit_signal("looking_right");
|
||||
|
||||
else:
|
||||
if (velocity.x > SLIDE_LEVEL):
|
||||
velocity.x -= SLIDE_LEVEL
|
||||
elif (velocity.x < -SLIDE_LEVEL):
|
||||
velocity.x += SLIDE_LEVEL
|
||||
else:
|
||||
velocity.x = 0
|
||||
walk_speed = 0
|
||||
|
||||
# Agacharse
|
||||
if (Input.is_action_pressed("ui_down")):
|
||||
get_node("Collision_Normal").set_trigger(true)
|
||||
get_node("Collision_Agachado").set_trigger(false)
|
||||
else:
|
||||
get_node("Collision_Normal").set_trigger(false)
|
||||
get_node("Collision_Agachado").set_trigger(true)
|
||||
|
||||
var motion = velocity * delta
|
||||
motion = move(motion)
|
||||
|
||||
# Control de colisiones
|
||||
if (is_colliding()):
|
||||
if (abs(get_collision_normal().y) > 0.45):
|
||||
# Está en el suelo
|
||||
can_jump = true
|
||||
jumping = false
|
||||
var n = get_collision_normal()
|
||||
motion = n.slide(motion)
|
||||
velocity = n.slide(velocity)
|
||||
move(motion)
|
||||
elif (get_collision_normal().y > 0):
|
||||
# Está chocandose contra el techo
|
||||
jumping = false
|
||||
can_jump = false
|
||||
jump_time = 0
|
||||
else:
|
||||
can_jump = false
|
||||
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
17
bullet.gd
Normal file
17
bullet.gd
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
extends RigidBody2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
const LIFE_TIME = 3
|
||||
|
||||
|
||||
func _ready():
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(LIFE_TIME)
|
||||
t.set_one_shot(true)
|
||||
self.add_child(t)
|
||||
t.start()
|
||||
yield(t, "timeout")
|
||||
queue_free()
|
||||
49
bullet.tscn
Normal file
49
bullet.tscn
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
[gd_scene load_steps=4 format=1]
|
||||
|
||||
[ext_resource path="res://bullet.gd" type="Script" id=1]
|
||||
[ext_resource path="res://icon.png" type="Texture" id=2]
|
||||
|
||||
[sub_resource type="CircleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 12.5981
|
||||
|
||||
[node name="RigidBody2D" type="RigidBody2D"]
|
||||
|
||||
visibility/behind_parent = true
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
collision/layers = 1
|
||||
collision/mask = 0
|
||||
mode = 0
|
||||
mass = 1.0
|
||||
friction = 0.0
|
||||
bounce = 1.0
|
||||
gravity_scale = 20.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
script/script = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="CollisionShape2D"]
|
||||
|
||||
transform/pos = Vector2( -0.168064, -0.402534 )
|
||||
transform/scale = Vector2( 0.324185, 0.307502 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
|
||||
19
engine.cfg
Normal file
19
engine.cfg
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[application]
|
||||
|
||||
name="express"
|
||||
main_scene="res://All.tscn"
|
||||
icon="res://icon.png"
|
||||
|
||||
[display]
|
||||
|
||||
driver="GLES2"
|
||||
width=1280
|
||||
height=768
|
||||
fullscreen=false
|
||||
orientation="landscape"
|
||||
emulate_touchscreen=true
|
||||
|
||||
[input]
|
||||
|
||||
ui_shoot=[key(S)]
|
||||
ui_jump=[key(A)]
|
||||
BIN
icon.png
Normal file
BIN
icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
2
icon.png.flags
Normal file
2
icon.png.flags
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
filter=false
|
||||
gen_mipmaps=false
|
||||
82
player.tscn
Normal file
82
player.tscn
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
[gd_scene load_steps=6 format=1]
|
||||
|
||||
[ext_resource path="res://Movimiento.gd" type="Script" id=1]
|
||||
[ext_resource path="res://shooter.gd" type="Script" id=2]
|
||||
[ext_resource path="res://icon.png" type="Texture" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 10, 10 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 10, 10 )
|
||||
|
||||
[node name="Player" type="KinematicBody2D"]
|
||||
|
||||
transform/pos = Vector2( -326.42, -758.827 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 3, 0, 0, 3, -0.04422, -0.0804443 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 2 )
|
||||
shapes/1/transform = Matrix32( 3, 0, 0, 1.5, 0.417816, 15.288 )
|
||||
shapes/1/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 2
|
||||
collision/margin = 0.08
|
||||
script/script = ExtResource( 1 )
|
||||
|
||||
[node name="shooter" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 50, 0 )
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
script/script = ExtResource( 2 )
|
||||
|
||||
[node name="sprite" type="Sprite" parent="."]
|
||||
|
||||
texture = ExtResource( 3 )
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -2.47144, 0.669312 )
|
||||
anchor_mode = 1
|
||||
rotating = false
|
||||
current = true
|
||||
zoom = Vector2( 1, 1 )
|
||||
limit/left = -10000000
|
||||
limit/top = -10000000
|
||||
limit/right = 10000000
|
||||
limit/bottom = 10000000
|
||||
drag_margin/h_enabled = true
|
||||
drag_margin/v_enabled = true
|
||||
smoothing/enable = true
|
||||
smoothing/speed = 5.0
|
||||
drag_margin/left = 0.2
|
||||
drag_margin/top = 0.2
|
||||
drag_margin/right = 0.2
|
||||
drag_margin/bottom = 0.2
|
||||
|
||||
[node name="Collision_Normal" type="CollisionShape2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -0.04422, -0.0804443 )
|
||||
transform/scale = Vector2( 3, 3 )
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Collision_Agachado" type="CollisionShape2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0.417816, 15.288 )
|
||||
transform/scale = Vector2( 3, 1.5 )
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 1
|
||||
|
||||
[connection signal="looking_left" from="." to="shooter" method="_on_KinematicBody2D_looking_left"]
|
||||
|
||||
[connection signal="looking_right" from="." to="shooter" method="_on_KinematicBody2D_looking_right"]
|
||||
|
||||
|
||||
41
shooter.gd
Normal file
41
shooter.gd
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
extends Node2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
const BULLET = preload("res://bullet.tscn")
|
||||
var shooting = false
|
||||
|
||||
const SHOOT_CADENCE = 0.5
|
||||
|
||||
var shoot_dir = Vector2(500,-250)
|
||||
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
|
||||
func _fixed_process(delta):
|
||||
if (Input.is_action_pressed("ui_shoot") and !shooting):
|
||||
|
||||
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)
|
||||
|
||||
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
|
||||
|
||||
|
||||
func _on_KinematicBody2D_looking_left():
|
||||
shoot_dir = Vector2(-500,-250)
|
||||
set_pos(Vector2(-50, 0))
|
||||
|
||||
func _on_KinematicBody2D_looking_right():
|
||||
shoot_dir = Vector2(500,-250)
|
||||
set_pos(Vector2(50, 0))
|
||||
BIN
tile.png
Normal file
BIN
tile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 187 KiB |
1
tile.png.flags
Normal file
1
tile.png.flags
Normal file
|
|
@ -0,0 +1 @@
|
|||
filter=false
|
||||
157
tiles.tscn
Normal file
157
tiles.tscn
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
[gd_scene load_steps=7 format=1]
|
||||
|
||||
[ext_resource path="res://tile.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -10.6626, 9.31828, 0.8897, 9.31828, 0.780776, 9.83776, -5.15769, 9.83331 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -10.6626, 10.4272, -10.6626, 9.31828, -5.15769, 9.83331, -5.20409, 10.4345 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=3]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 8.33522, 9.47213 )
|
||||
|
||||
[sub_resource type="CircleShape2D" id=6]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 7.89035
|
||||
|
||||
[sub_resource type="SegmentShape2D" id=5]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
a = Vector2( 11.318, -14.8356 )
|
||||
b = Vector2( -8.65768, 5.31913 )
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
transform/pos = Vector2( 16, 16 )
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
|
||||
[node name="Esquina" type="Sprite" parent="."]
|
||||
|
||||
visibility/visible = false
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
texture = ExtResource( 1 )
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 32, 32 )
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="Esquina"]
|
||||
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 2 )
|
||||
shapes/1/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/1/trigger = false
|
||||
collision/layers = 2
|
||||
collision/mask = 1
|
||||
constant_linear_velocity = Vector2( 0, 0 )
|
||||
constant_angular_velocity = 0.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Esquina/StaticBody2D"]
|
||||
|
||||
build_mode = 0
|
||||
polygon = Vector2Array( -5.15769, 9.83331, 0.780776, 9.83776, 0.8897, 9.31828, -10.6626, 9.31828, -10.6626, 10.4272, -5.20409, 10.4345 )
|
||||
shape_range = Vector2( 0, 1 )
|
||||
trigger = false
|
||||
|
||||
[node name="Suelo" type="Sprite" parent="."]
|
||||
|
||||
visibility/visible = false
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
texture = ExtResource( 1 )
|
||||
region = true
|
||||
region_rect = Rect2( 32, 32, 32, 32 )
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="Suelo"]
|
||||
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 3 )
|
||||
shapes/0/transform = Matrix32( 3.83209, 0, 0, 3.42399, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
collision/layers = 2
|
||||
collision/mask = 1
|
||||
constant_linear_velocity = Vector2( 0, 0 )
|
||||
constant_angular_velocity = 0.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Suelo/StaticBody2D"]
|
||||
|
||||
transform/scale = Vector2( 3.83209, 3.42399 )
|
||||
shape = SubResource( 3 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Arbusto" type="Sprite" parent="."]
|
||||
|
||||
visibility/visible = false
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
texture = ExtResource( 1 )
|
||||
region = true
|
||||
region_rect = Rect2( 64, 128, 32, 32 )
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="Arbusto"]
|
||||
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 6 )
|
||||
shapes/0/transform = Matrix32( 3.2039, 0, 0, 3.17543, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
collision/layers = 2
|
||||
collision/mask = 1
|
||||
constant_linear_velocity = Vector2( 0, 0 )
|
||||
constant_angular_velocity = 0.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Arbusto/StaticBody2D"]
|
||||
|
||||
visibility/light_mask = 3
|
||||
transform/scale = Vector2( 3.2039, 3.17543 )
|
||||
shape = SubResource( 6 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Rampa" type="Sprite" parent="."]
|
||||
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
texture = ExtResource( 1 )
|
||||
region = true
|
||||
region_rect = Rect2( 128, 256, 32, 32 )
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="Rampa"]
|
||||
|
||||
transform/pos = Vector2( 16, 16 )
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 5 )
|
||||
shapes/0/transform = Matrix32( 3.2039, 0, 0, 3.17543, -4.26167, 15.1095 )
|
||||
shapes/0/trigger = false
|
||||
collision/layers = 2
|
||||
collision/mask = 1
|
||||
constant_linear_velocity = Vector2( 0, 0 )
|
||||
constant_angular_velocity = 0.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Rampa/StaticBody2D"]
|
||||
|
||||
transform/pos = Vector2( -4.26167, 15.1095 )
|
||||
transform/scale = Vector2( 3.2039, 3.17543 )
|
||||
shape = SubResource( 5 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
|
||||
94
tileset.xml
Normal file
94
tileset.xml
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<resource_file type="TileSet" subresource_count="8" version="2.1" version_name="Godot Engine v2.1.3.stable.official">
|
||||
<ext_resource path="res://tile.png" type="Texture" index="0"></ext_resource>
|
||||
<resource type="ConvexPolygonShape2D" path="local://1">
|
||||
<real name="custom_solver_bias"> 0 </real>
|
||||
<vector2_array name="points" len="4"> -10.6626, 9.31828, 0.8897, 9.31828, 0.780776, 9.83776, -5.15769, 9.83331 </vector2_array>
|
||||
|
||||
</resource>
|
||||
<resource type="ConvexPolygonShape2D" path="local://2">
|
||||
<real name="custom_solver_bias"> 0 </real>
|
||||
<vector2_array name="points" len="4"> -10.6626, 10.4272, -10.6626, 9.31828, -5.15769, 9.83331, -5.20409, 10.4345 </vector2_array>
|
||||
|
||||
</resource>
|
||||
<resource type="RectangleShape2D" path="local://3">
|
||||
<real name="custom_solver_bias"> 0 </real>
|
||||
<vector2 name="extents"> 8.33522, 9.47213 </vector2>
|
||||
|
||||
</resource>
|
||||
<resource type="CircleShape2D" path="local://4">
|
||||
<real name="custom_solver_bias"> 0 </real>
|
||||
<real name="radius"> 7.890354 </real>
|
||||
|
||||
</resource>
|
||||
<resource type="CircleShape2D" path="local://6">
|
||||
<real name="custom_solver_bias"> 0 </real>
|
||||
<real name="radius"> 7.89035 </real>
|
||||
|
||||
</resource>
|
||||
<resource type="SegmentShape2D" path="local://5">
|
||||
<real name="custom_solver_bias"> 0 </real>
|
||||
<vector2 name="a"> 11.318, -14.8356 </vector2>
|
||||
<vector2 name="b"> -8.65768, 5.31913 </vector2>
|
||||
|
||||
</resource>
|
||||
<main_resource>
|
||||
<string name="0/name"> "Esquina" </string>
|
||||
<resource name="0/texture" external="0"> </resource>
|
||||
<vector2 name="0/tex_offset"> 0, 0 </vector2>
|
||||
<resource name="0/material"></resource> <color name="0/modulate"> 1, 1, 1, 1 </color>
|
||||
<rect2 name="0/region"> 0, 0, 32, 32 </rect2>
|
||||
<vector2 name="0/occluder_offset"> 16, 16 </vector2>
|
||||
<resource name="0/occluder"></resource> <vector2 name="0/navigation_offset"> 16, 16 </vector2>
|
||||
<resource name="0/navigation"></resource> <vector2 name="0/shape_offset"> 16, 16 </vector2>
|
||||
<array name="0/shapes" len="2" shared="false">
|
||||
<resource resource_type="Shape2D" path="local://1"> </resource>
|
||||
<resource resource_type="Shape2D" path="local://2"> </resource>
|
||||
</array>
|
||||
<string name="1/name"> "Suelo" </string>
|
||||
<resource name="1/texture" external="0"> </resource>
|
||||
<vector2 name="1/tex_offset"> 0, 0 </vector2>
|
||||
<resource name="1/material"></resource> <color name="1/modulate"> 1, 1, 1, 1 </color>
|
||||
<rect2 name="1/region"> 32, 32, 32, 32 </rect2>
|
||||
<vector2 name="1/occluder_offset"> 16, 16 </vector2>
|
||||
<resource name="1/occluder"></resource> <vector2 name="1/navigation_offset"> 16, 16 </vector2>
|
||||
<resource name="1/navigation"></resource> <vector2 name="1/shape_offset"> 16, 16 </vector2>
|
||||
<array name="1/shapes" len="1" shared="false">
|
||||
<resource resource_type="Shape2D" path="local://3"> </resource>
|
||||
</array>
|
||||
<string name="2/name"> "Suelo1" </string>
|
||||
<resource name="2/texture" external="0"> </resource>
|
||||
<vector2 name="2/tex_offset"> 0, 0 </vector2>
|
||||
<resource name="2/material"></resource> <color name="2/modulate"> 1, 1, 1, 1 </color>
|
||||
<rect2 name="2/region"> 64, 128, 32, 32 </rect2>
|
||||
<vector2 name="2/occluder_offset"> 16, 16 </vector2>
|
||||
<resource name="2/occluder"></resource> <vector2 name="2/navigation_offset"> 16, 16 </vector2>
|
||||
<resource name="2/navigation"></resource> <vector2 name="2/shape_offset"> 16, 16 </vector2>
|
||||
<array name="2/shapes" len="1" shared="false">
|
||||
<resource resource_type="Shape2D" path="local://4"> </resource>
|
||||
</array>
|
||||
<string name="3/name"> "Arbusto" </string>
|
||||
<resource name="3/texture" external="0"> </resource>
|
||||
<vector2 name="3/tex_offset"> 0, 0 </vector2>
|
||||
<resource name="3/material"></resource> <color name="3/modulate"> 1, 1, 1, 1 </color>
|
||||
<rect2 name="3/region"> 64, 128, 32, 32 </rect2>
|
||||
<vector2 name="3/occluder_offset"> 16, 16 </vector2>
|
||||
<resource name="3/occluder"></resource> <vector2 name="3/navigation_offset"> 16, 16 </vector2>
|
||||
<resource name="3/navigation"></resource> <vector2 name="3/shape_offset"> 16, 16 </vector2>
|
||||
<array name="3/shapes" len="1" shared="false">
|
||||
<resource resource_type="Shape2D" path="local://6"> </resource>
|
||||
</array>
|
||||
<string name="4/name"> "Rampa" </string>
|
||||
<resource name="4/texture" external="0"> </resource>
|
||||
<vector2 name="4/tex_offset"> 0, 0 </vector2>
|
||||
<resource name="4/material"></resource> <color name="4/modulate"> 1, 1, 1, 1 </color>
|
||||
<rect2 name="4/region"> 128, 256, 32, 32 </rect2>
|
||||
<vector2 name="4/occluder_offset"> 16, 16 </vector2>
|
||||
<resource name="4/occluder"></resource> <vector2 name="4/navigation_offset"> 16, 16 </vector2>
|
||||
<resource name="4/navigation"></resource> <vector2 name="4/shape_offset"> 16, 16 </vector2>
|
||||
<array name="4/shapes" len="1" shared="false">
|
||||
<resource resource_type="Shape2D" path="local://5"> </resource>
|
||||
</array>
|
||||
|
||||
</main_resource>
|
||||
</resource_file>
|
||||
28
top.tscn
Normal file
28
top.tscn
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
[gd_scene load_steps=3 format=1]
|
||||
|
||||
[ext_resource path="res://tileset.xml" type="TileSet" id=1]
|
||||
[ext_resource path="res://player.tscn" type="PackedScene" id=2]
|
||||
|
||||
[node name="Level" type="Node2D"]
|
||||
|
||||
[node name="TileMap" type="TileMap" parent="."]
|
||||
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 32, 32 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( -1966074, 1610612737, -1966073, 1610612737, -1966072, 1610612737, -1966071, 1610612737, -1966070, 1610612737, -1835007, 1610612737, -1835006, 1610612737, -1835005, 1610612737, -1835004, 1610612737, -1703949, 1, -1638413, 1, -1638405, 1610612740, -1638404, 1610612737, -1638403, 1610612737, -1638402, 1610612737, -1572877, 1, -1572870, 1610612740, -1507341, 1, -1507335, 1610612740, -1441809, 1, -1441808, 1, -1441807, 1, -1441806, 1, -1441805, 1, -1441800, 1610612740, -1376269, 1, -1376265, 1610612740, -1376260, 1, -1376259, 1, -1376258, 1, -1376257, 1, -1441792, 1, -1441791, 1, -1441788, 1, -1441784, 1, -1441781, 1, -1441778, 1, -1441775, 1, -1441773, 1, -1441771, 1, -1441765, 1, -1310733, 1, -1310690, 1, -1179670, 1, -1179669, 1, -1179668, 1, -1179667, 1, -1179666, 1, -1179665, 1, -1179664, 1, -1179663, 1, -1179662, 1, -1179661, 1, -1179660, 1, -1179659, 1, -1179658, 1, -1179657, 1, -1179656, 1, -1179655, 1, -1179654, 1, -1179615, 1, -1048596, 0, -1048595, 0, -1048594, 0, -1048593, 0, -1048592, 0, -1048591, 0, -1048590, 0, -1048589, 0, -1048588, 0, -1048587, 0, -1048586, 0, -1048585, 0, -1048584, 0, -1048583, 0, -1048582, 0, -983022, 1, -983018, 1, -983014, 1, -983010, 1, -983009, 1, -851996, 1, -851995, 1, -851994, 1, -851993, 1, -851992, 1, 65535, 0, 0, 1, 589829, 1610612737, 589830, 1610612737, 589831, 1610612737, 589832, 1610612737, 589833, 1610612737, 589834, 1610612737, 589836, 1610612737, 589837, 1610612737, 589838, 1610612737, 589839, 1610612737, 589840, 1610612737, 589841, 1610612737, 589842, 1610612737, 589843, 1610612737, 589844, 1610612737, 589845, 1610612737, 589846, 1610612737, 589847, 1610612737, 589848, 1610612737, 589849, 1610612737 )
|
||||
|
||||
[node name="KinematicBody2D" parent="." instance=ExtResource( 2 )]
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue