diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Chicken.gd | 64 | ||||
-rw-r--r-- | Chicken.png | bin | 0 -> 2649 bytes | |||
-rw-r--r-- | Chicken.png.import | 37 | ||||
-rw-r--r-- | Chicken.tscn | 605 | ||||
-rw-r--r-- | ChickenAnimation.gd | 4 | ||||
-rw-r--r-- | Ground.png | bin | 0 -> 1183 bytes | |||
-rw-r--r-- | Ground.png.import | 37 | ||||
-rw-r--r-- | Main.gd | 4 | ||||
-rw-r--r-- | Main.tscn | 133 | ||||
-rw-r--r-- | MouseInput.gd | 11 | ||||
-rw-r--r-- | MouseInput.tscn | 6 | ||||
-rw-r--r-- | Player.gd | 61 | ||||
-rw-r--r-- | Player.tscn | 14 | ||||
-rw-r--r-- | beak.tres | 4 | ||||
-rw-r--r-- | chicken.pck | bin | 0 -> 75280 bytes | |||
-rw-r--r-- | chicken.tres | 8 | ||||
-rw-r--r-- | default_env.tres | 7 | ||||
-rw-r--r-- | fence.png | bin | 0 -> 6484 bytes | |||
-rw-r--r-- | fence.png.import | 37 | ||||
-rw-r--r-- | fence.tres | 9 | ||||
-rw-r--r-- | icon.png | bin | 0 -> 3305 bytes | |||
-rw-r--r-- | icon.png.import | 35 | ||||
-rw-r--r-- | project.godot | 101 |
24 files changed, 1179 insertions, 0 deletions
@@ -9,3 +9,5 @@ export_presets.cfg # Mono-specific ignores .mono/ data_*/ + +*.exe diff --git a/Chicken.gd b/Chicken.gd new file mode 100644 index 0000000..996c2eb --- /dev/null +++ b/Chicken.gd @@ -0,0 +1,64 @@ +extends KinematicBody + +export var rot_chance = 5.0 +export var rot_range = PI / 4.0 +export var mov_chance = 5.0 +export var mov_speed = 1.0 +export var mov_length_min = 1.0 +export var mov_length_max = 5.0 +export var flap_chance = 5.0 +export var squak_chance = 5.0 +export var peck_chance = 5.0 + +onready var anim = $AnimationTree + +func roll_die(chance): + return (randf() * 100) <= chance + +func _physics_process(delta): + match anim.wings.get_current_node(): + "IDLE": + if roll_die(flap_chance): + anim.wings.travel("FLAP") + "FLAP": + pass + match anim.state.get_current_node(): + "IDLE": + state_idle(delta) + "MOVING": + state_moving(delta) + "SQUACK": + pass + "PECK": + pass + +func state_idle(delta): + if roll_die(rot_chance): + var ang = randf() * rot_range + rotate(Vector3.UP, ang) + if roll_die(mov_chance): + anim.state.travel("MOVING") + var dist = lerp(mov_length_min, mov_length_max, randf()) + mov_lerp_pos = 0.0 + mov_lerp_step = (mov_speed * delta) / dist + var rotation = Transform(self.rotation, Vector3.ZERO) + var forward = rotation * Vector3.FORWARD + mov_lerp_start = translation + mov_lerp_target = translation + (forward * dist) + elif roll_die(squak_chance): + anim.state.travel("SQUACK") + elif roll_die(peck_chance): + anim.state.travel("PECK") + +var mov_lerp_start = Vector3.ZERO +var mov_lerp_target = Vector3.ZERO +var mov_lerp_step = 0.0 +var mov_lerp_pos = 0.0 +func state_moving(_delta): + if mov_lerp_pos >= 1.0: + anim.state.travel("IDLE") + return + mov_lerp_pos += mov_lerp_step + mov_lerp_pos = min(mov_lerp_pos, 1.0) + var pos = lerp(mov_lerp_start, mov_lerp_target, mov_lerp_pos) + pos = move_and_slide(pos - translation, Vector3.UP) diff --git a/Chicken.png b/Chicken.png Binary files differnew file mode 100644 index 0000000..9abc2d2 --- /dev/null +++ b/Chicken.png diff --git a/Chicken.png.import b/Chicken.png.import new file mode 100644 index 0000000..183f344 --- /dev/null +++ b/Chicken.png.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Chicken.png-57c74d64dde4deff6196acc88252cdcf.s3tc.stex" +path.etc2="res://.import/Chicken.png-57c74d64dde4deff6196acc88252cdcf.etc2.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true +} + +[deps] + +source_file="res://Chicken.png" +dest_files=[ "res://.import/Chicken.png-57c74d64dde4deff6196acc88252cdcf.s3tc.stex", "res://.import/Chicken.png-57c74d64dde4deff6196acc88252cdcf.etc2.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Chicken.tscn b/Chicken.tscn new file mode 100644 index 0000000..06d1bdb --- /dev/null +++ b/Chicken.tscn @@ -0,0 +1,605 @@ +[gd_scene load_steps=49 format=2] + +[ext_resource path="res://chicken.tres" type="Material" id=1] +[ext_resource path="res://beak.tres" type="Material" id=2] +[ext_resource path="res://Chicken.gd" type="Script" id=3] +[ext_resource path="res://ChickenAnimation.gd" type="Script" id=4] + +[sub_resource type="SphereMesh" id=1] + +[sub_resource type="SphereMesh" id=2] + +[sub_resource type="CubeMesh" id=3] + +[sub_resource type="CubeMesh" id=4] + +[sub_resource type="Animation" id=5] +length = 0.001 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly/LeftWingPivot:translation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( -0.995677, 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Belly/LeftWingPivot:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Belly/RightWingPivot:translation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0.996, 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Belly/RightWingPivot:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Belly/HeadPivot:rotation_degrees") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Belly/HeadPivot/Head/BeakTopPivot:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Belly/HeadPivot/Head/BeakBottomPivot:rotation_degrees") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Belly:rotation_degrees") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Belly:translation") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=6] +resource_name = "flappybird" +length = 2.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly/LeftWingPivot:translation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5, 1.5, 2 ), +"transitions": PoolRealArray( 1.51572, 0.450625, 1, 1.51572 ), +"update": 0, +"values": [ Vector3( -0.995677, 0, 0 ), Vector3( -0.995677, 0.0845447, 0 ), Vector3( -0.995677, -0.127906, 0 ), Vector3( -0.995677, 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Belly/LeftWingPivot:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5, 1.5, 2 ), +"transitions": PoolRealArray( 1.51572, 0.450625, 1, 1.51572 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, -23.821 ), Vector3( 0, 0, 21.829 ), Vector3( 0, 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Belly/RightWingPivot:translation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.5, 1.5, 2 ), +"transitions": PoolRealArray( 1.51572, 0.450625, 1, 1.51572 ), +"update": 0, +"values": [ Vector3( 0.996, 0, 0 ), Vector3( 0.996, 0.085, 0 ), Vector3( 0.996, -0.128, 0 ), Vector3( 0.996, 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Belly/RightWingPivot:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.5, 1.5, 2 ), +"transitions": PoolRealArray( 1.51572, 0.450625, 1, 1.51572 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, 23.821 ), Vector3( 0, 0, -21.829 ), Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=9] +resource_name = "hop" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly:translation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5, 1 ), +"transitions": PoolRealArray( 0.378929, 3.13834, 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0.510995, 0 ), Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=10] +resource_name = "idle_bottom" +length = 0.001 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly/LeftWingPivot:translation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( -0.995677, 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Belly/LeftWingPivot:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Belly/RightWingPivot:translation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0.996, 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Belly/RightWingPivot:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=11] +resource_name = "idle_hop" +length = 0.001 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly:translation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=12] +resource_name = "idle_top" +length = 0.001 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly/HeadPivot:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Belly/HeadPivot/Head/BeakTopPivot:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Belly/HeadPivot/Head/BeakBottomPivot:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Belly:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=7] +resource_name = "peck" +length = 3.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly/HeadPivot:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1, 1.2, 1.4, 1.6, 1.8, 3 ), +"transitions": PoolRealArray( 0.707107, 0.594604, 0.594604, 0.594604, 0.594604, 0.757858, 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( -18.871, 0, 0 ), Vector3( 3.071, 0, 0 ), Vector3( -18.871, 0, 0 ), Vector3( 3.071, 0, 0 ), Vector3( -18.871, 0, 0 ), Vector3( 0, 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Belly:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1, 2, 3 ), +"transitions": PoolRealArray( 0.707107, 1, 0.707107, 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( -29, 0, 0 ), Vector3( -29, 0, 0 ), Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=8] +resource_name = "squack" +length = 2.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Belly/HeadPivot:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1, 2 ), +"transitions": PoolRealArray( 0.450625, 1, 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( 30.215, 0, 0 ), Vector3( 0, 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Belly/HeadPivot/Head/BeakTopPivot:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1, 2 ), +"transitions": PoolRealArray( 0.450625, 1, 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( 26.24, 0, 0 ), Vector3( 0, 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Belly/HeadPivot/Head/BeakBottomPivot:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1, 2 ), +"transitions": PoolRealArray( 0.450625, 1, 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( -18.246, 0, 0 ), Vector3( 0, 0, 0 ) ] +} + +[sub_resource type="AnimationNodeAdd2" id=18] + +[sub_resource type="AnimationNodeAdd2" id=42] + +[sub_resource type="AnimationNodeAnimation" id=43] +animation = "idle_top" + +[sub_resource type="AnimationNodeAnimation" id=44] +animation = "idle_hop" + +[sub_resource type="AnimationNodeBlendTree" id=45] +graph_offset = Vector2( -573, -15 ) +nodes/Add2/node = SubResource( 42 ) +nodes/Add2/position = Vector2( 100, 140 ) +nodes/Animation/node = SubResource( 44 ) +nodes/Animation/position = Vector2( -140, 100 ) +"nodes/Animation 2/node" = SubResource( 43 ) +"nodes/Animation 2/position" = Vector2( -160, 240 ) +node_connections = [ "output", 0, "Add2", "Add2", 0, "Animation", "Add2", 1, "Animation 2" ] + +[sub_resource type="AnimationNodeAnimation" id=39] +animation = "hop" + +[sub_resource type="AnimationNodeTimeScale" id=40] + +[sub_resource type="AnimationNodeBlendTree" id=41] +graph_offset = Vector2( -427, -35 ) +nodes/Animation/node = SubResource( 39 ) +nodes/Animation/position = Vector2( -120, 120 ) +nodes/TimeScale/node = SubResource( 40 ) +nodes/TimeScale/position = Vector2( 100, 140 ) +node_connections = [ "output", 0, "TimeScale", "TimeScale", 0, "Animation" ] + +[sub_resource type="AnimationNodeAnimation" id=46] +animation = "peck" + +[sub_resource type="AnimationNodeTimeScale" id=47] + +[sub_resource type="AnimationNodeBlendTree" id=48] +graph_offset = Vector2( -864, -12 ) +nodes/Animation/node = SubResource( 46 ) +nodes/Animation/position = Vector2( -140, 140 ) +nodes/TimeScale/node = SubResource( 47 ) +nodes/TimeScale/position = Vector2( 100, 140 ) +node_connections = [ "output", 0, "TimeScale", "TimeScale", 0, "Animation" ] + +[sub_resource type="AnimationNodeAnimation" id=49] +animation = "squack" + +[sub_resource type="AnimationNodeTimeScale" id=50] + +[sub_resource type="AnimationNodeBlendTree" id=51] +graph_offset = Vector2( -290, -3 ) +nodes/Animation/node = SubResource( 49 ) +nodes/Animation/position = Vector2( -60, 160 ) +nodes/TimeScale/node = SubResource( 50 ) +nodes/TimeScale/position = Vector2( 140, 140 ) +node_connections = [ "output", 0, "TimeScale", "TimeScale", 0, "Animation" ] + +[sub_resource type="AnimationNodeStateMachineTransition" id=52] + +[sub_resource type="AnimationNodeStateMachineTransition" id=53] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id=54] + +[sub_resource type="AnimationNodeStateMachineTransition" id=55] +switch_mode = 2 +auto_advance = true + +[sub_resource type="AnimationNodeStateMachineTransition" id=56] +switch_mode = 2 +auto_advance = true + +[sub_resource type="AnimationNodeStateMachineTransition" id=57] + +[sub_resource type="AnimationNodeStateMachine" id=58] +states/IDLE/node = SubResource( 45 ) +states/IDLE/position = Vector2( 657, 146 ) +states/MOVING/node = SubResource( 41 ) +states/MOVING/position = Vector2( 657, 268 ) +states/PECK/node = SubResource( 48 ) +states/PECK/position = Vector2( 395, 146 ) +states/SQUACK/node = SubResource( 51 ) +states/SQUACK/position = Vector2( 952, 146 ) +transitions = [ "IDLE", "MOVING", SubResource( 52 ), "MOVING", "IDLE", SubResource( 53 ), "IDLE", "SQUACK", SubResource( 54 ), "SQUACK", "IDLE", SubResource( 55 ), "PECK", "IDLE", SubResource( 56 ), "IDLE", "PECK", SubResource( 57 ) ] +start_node = "IDLE" + +[sub_resource type="AnimationNodeAnimation" id=59] +animation = "flappybird" + +[sub_resource type="AnimationNodeTimeScale" id=60] + +[sub_resource type="AnimationNodeBlendTree" id=61] +graph_offset = Vector2( -405, 10 ) +nodes/Animation/node = SubResource( 59 ) +nodes/Animation/position = Vector2( -66.6667, 132.5 ) +nodes/TimeScale/node = SubResource( 60 ) +nodes/TimeScale/position = Vector2( 120, 140 ) +node_connections = [ "output", 0, "TimeScale", "TimeScale", 0, "Animation" ] + +[sub_resource type="AnimationNodeAnimation" id=62] +animation = "idle_bottom" + +[sub_resource type="AnimationNodeStateMachineTransition" id=63] + +[sub_resource type="AnimationNodeStateMachineTransition" id=64] +switch_mode = 2 +auto_advance = true + +[sub_resource type="AnimationNodeStateMachine" id=65] +states/FLAP/node = SubResource( 61 ) +states/FLAP/position = Vector2( 904, 144 ) +states/IDLE/node = SubResource( 62 ) +states/IDLE/position = Vector2( 674, 144 ) +transitions = [ "IDLE", "FLAP", SubResource( 63 ), "FLAP", "IDLE", SubResource( 64 ) ] +start_node = "IDLE" + +[sub_resource type="AnimationNodeBlendTree" id=16] +graph_offset = Vector2( -847.136, -609 ) +nodes/Add2/node = SubResource( 18 ) +nodes/Add2/position = Vector2( 80, -480 ) +nodes/output/position = Vector2( 300, -480 ) +nodes/state/node = SubResource( 58 ) +nodes/state/position = Vector2( -220, -380 ) +nodes/wings/node = SubResource( 65 ) +nodes/wings/position = Vector2( -220, -520 ) +node_connections = [ "output", 0, "Add2", "Add2", 0, "wings", "Add2", 1, "state" ] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=66] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=38] + +[sub_resource type="SphereShape" id=67] + +[node name="Chicken" type="KinematicBody"] +collision_layer = 4 +collision_mask = 5 +script = ExtResource( 3 ) + +[node name="Belly" type="MeshInstance" parent="."] +mesh = SubResource( 1 ) +material/0 = ExtResource( 1 ) + +[node name="HeadPivot" type="Spatial" parent="Belly"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.657827, -0.749514 ) + +[node name="Head" type="MeshInstance" parent="Belly/HeadPivot"] +transform = Transform( 0.6, 0, 0, 0, 0.55438, 0.229484, 0, -0.229484, 0.55438, 0, 0.388057, -0.339644 ) +mesh = SubResource( 2 ) +skeleton = NodePath("../../..") +material/0 = ExtResource( 1 ) + +[node name="BeakTopPivot" type="Spatial" parent="Belly/HeadPivot/Head"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.19209e-07, -0.965512 ) + +[node name="BeakTop" type="MeshInstance" parent="Belly/HeadPivot/Head/BeakTopPivot"] +transform = Transform( 0.3, 0, 0, 0, 0.1, 0, 0, 0, 0.5, 0, 0, -0.452 ) +mesh = SubResource( 3 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="BeakBottomPivot" type="Spatial" parent="Belly/HeadPivot/Head"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.189294, -0.965511 ) + +[node name="BeakBottom" type="MeshInstance" parent="Belly/HeadPivot/Head/BeakBottomPivot"] +transform = Transform( 0.3, 0, 0, 0, 0.1, 0, 0, 0, 0.5, 0, 0, -0.452 ) +mesh = SubResource( 3 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="LeftWingPivot" type="Spatial" parent="Belly"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.995677, 0, 0 ) + +[node name="LeftWing" type="MeshInstance" parent="Belly/LeftWingPivot"] +transform = Transform( 0.5, 0, 0, 0, 0.1, 0, 0, 0, 0.3, -0.377, 0, 0 ) +mesh = SubResource( 4 ) +skeleton = NodePath("../../..") +material/0 = ExtResource( 1 ) + +[node name="RightWingPivot" type="Spatial" parent="Belly"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.996, 0, 0 ) + +[node name="RightWing" type="MeshInstance" parent="Belly/RightWingPivot"] +transform = Transform( 0.5, 0, 0, 0, 0.1, 0, 0, 0, 0.3, 0.352, 0, 0 ) +mesh = SubResource( 4 ) +skeleton = NodePath("../../..") +material/0 = ExtResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 5 ) +anims/flappybird = SubResource( 6 ) +anims/hop = SubResource( 9 ) +anims/idle_bottom = SubResource( 10 ) +anims/idle_hop = SubResource( 11 ) +anims/idle_top = SubResource( 12 ) +anims/peck = SubResource( 7 ) +anims/squack = SubResource( 8 ) + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource( 16 ) +anim_player = NodePath("../AnimationPlayer") +active = true +parameters/Add2/add_amount = 1.0 +parameters/state/playback = SubResource( 66 ) +parameters/state/IDLE/Add2/add_amount = 0 +parameters/state/MOVING/TimeScale/scale = 1.0 +parameters/state/PECK/TimeScale/scale = 2.0 +parameters/state/SQUACK/TimeScale/scale = 1.0 +parameters/wings/playback = SubResource( 38 ) +parameters/wings/FLAP/TimeScale/scale = 2.0 +script = ExtResource( 4 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0.5, -0.5 ) +shape = SubResource( 67 ) diff --git a/ChickenAnimation.gd b/ChickenAnimation.gd new file mode 100644 index 0000000..a1298a0 --- /dev/null +++ b/ChickenAnimation.gd @@ -0,0 +1,4 @@ +extends AnimationTree + +var wings = self["parameters/wings/playback"] +var state = self["parameters/state/playback"] diff --git a/Ground.png b/Ground.png Binary files differnew file mode 100644 index 0000000..028df53 --- /dev/null +++ b/Ground.png diff --git a/Ground.png.import b/Ground.png.import new file mode 100644 index 0000000..0bf16db --- /dev/null +++ b/Ground.png.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Ground.png-a1e7165254050f6723978f7d8348ce00.s3tc.stex" +path.etc2="res://.import/Ground.png-a1e7165254050f6723978f7d8348ce00.etc2.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true +} + +[deps] + +source_file="res://Ground.png" +dest_files=[ "res://.import/Ground.png-a1e7165254050f6723978f7d8348ce00.s3tc.stex", "res://.import/Ground.png-a1e7165254050f6723978f7d8348ce00.etc2.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 @@ -0,0 +1,4 @@ +extends Node + +func _ready(): + randomize() diff --git a/Main.tscn b/Main.tscn new file mode 100644 index 0000000..b57a581 --- /dev/null +++ b/Main.tscn @@ -0,0 +1,133 @@ +[gd_scene load_steps=12 format=2] + +[ext_resource path="res://Main.gd" type="Script" id=1] +[ext_resource path="res://Ground.png" type="Texture" id=2] +[ext_resource path="res://Player.tscn" type="PackedScene" id=3] +[ext_resource path="res://Chicken.tscn" type="PackedScene" id=4] +[ext_resource path="res://fence.tres" type="Material" id=5] + +[sub_resource type="BoxShape" id=1] +extents = Vector3( 25, 1, 25 ) + +[sub_resource type="CubeMesh" id=3] +size = Vector3( 50, 2, 50 ) + +[sub_resource type="SpatialMaterial" id=4] +albedo_color = Color( 0.0352941, 0.301961, 0.00392157, 1 ) +albedo_texture = ExtResource( 2 ) +uv1_triplanar = true + +[sub_resource type="CubeMesh" id=5] + +[sub_resource type="BoxShape" id=7] +extents = Vector3( 5, 1, 0.05 ) + +[sub_resource type="BoxShape" id=6] +extents = Vector3( 0.05, 1, 5 ) + +[node name="Main" type="Node"] +script = ExtResource( 1 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( -0.586145, -0.773475, 0.241185, -0.715288, 0.633826, 0.294324, -0.380522, 0, -0.924772, 6.17321, 8.45611, -11.9247 ) + +[node name="Ground" type="StaticBody" parent="."] +collision_mask = 0 + +[node name="CollisionShape" type="CollisionShape" parent="Ground"] +shape = SubResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="Ground"] +mesh = SubResource( 3 ) +material/0 = SubResource( 4 ) + +[node name="Fence" type="StaticBody" parent="."] +collision_mask = 0 + +[node name="MeshInstance" type="MeshInstance" parent="Fence"] +transform = Transform( 5, 0, 0, 0, 1, 0, 0, 0, 0.1, 0, 2, -5 ) +mesh = SubResource( 5 ) +material/0 = ExtResource( 5 ) + +[node name="MeshInstance2" type="MeshInstance" parent="Fence"] +transform = Transform( 5, 0, 0, 0, 1, 0, 0, 0, 0.1, 0, 2, 5 ) +mesh = SubResource( 5 ) +material/0 = ExtResource( 5 ) + +[node name="MeshInstance3" type="MeshInstance" parent="Fence"] +transform = Transform( 0.1, 0, 0, 0, 1, 0, 0, 0, 5, -5, 2, 0 ) +mesh = SubResource( 5 ) +material/0 = ExtResource( 5 ) + +[node name="MeshInstance4" type="MeshInstance" parent="Fence"] +transform = Transform( 0.1, 0, 0, 0, 1, 0, 0, 0, 5, 5, 2, 0 ) +mesh = SubResource( 5 ) +material/0 = ExtResource( 5 ) + +[node name="CollisionShape" type="CollisionShape" parent="Fence"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, -5 ) +shape = SubResource( 7 ) + +[node name="CollisionShape2" type="CollisionShape" parent="Fence"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 5 ) +shape = SubResource( 7 ) + +[node name="CollisionShape3" type="CollisionShape" parent="Fence"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 2, 0 ) +shape = SubResource( 6 ) + +[node name="CollisionShape4" type="CollisionShape" parent="Fence"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 2, 0 ) +shape = SubResource( 6 ) + +[node name="Player" parent="." instance=ExtResource( 3 )] +transform = Transform( 1, 0, 0, 0, 0.968718, 0.248166, 0, -0.248166, 0.968718, 0, 5.05733, 7 ) + +[node name="Chicken" parent="." instance=ExtResource( 4 )] +transform = Transform( 0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 1.25, 0 ) +rot_chance = 10.0 +flap_chance = 2.0 +squak_chance = 2.0 +peck_chance = 3.0 + +[node name="Chicken2" parent="." instance=ExtResource( 4 )] +transform = Transform( -0.157042, 0, 0.19452, 0, 0.25, 0, -0.19452, 0, -0.157042, 2.50059, 1.25, -2.25906 ) +rot_chance = 10.0 +flap_chance = 2.0 +squak_chance = 2.0 +peck_chance = 3.0 + +[node name="Chicken3" parent="." instance=ExtResource( 4 )] +transform = Transform( 0.181922, 0, -0.171477, 0, 0.25, 0, 0.171477, 0, 0.181922, 0, 1.25, -2.79105 ) +rot_chance = 10.0 +flap_chance = 2.0 +squak_chance = 2.0 +peck_chance = 3.0 + +[node name="Chicken4" parent="." instance=ExtResource( 4 )] +transform = Transform( 0.177798, 0, 0.175749, 0, 0.25, 0, -0.175749, 0, 0.177798, -3.31942, 1.25, 0 ) +rot_chance = 10.0 +flap_chance = 2.0 +squak_chance = 2.0 +peck_chance = 3.0 + +[node name="Chicken5" parent="." instance=ExtResource( 4 )] +transform = Transform( -0.24986, 0, 0.00835422, 0, 0.25, 0, -0.00835422, 0, -0.24986, -1.33975, 1.25, -1.28165 ) +rot_chance = 10.0 +flap_chance = 2.0 +squak_chance = 2.0 +peck_chance = 3.0 + +[node name="UI" type="Control" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 + +[node name="Controls" type="Label" parent="UI"] +margin_right = 166.0 +margin_bottom = 82.0 +custom_colors/font_color = Color( 0.00784314, 0.0392157, 0.811765, 1 ) +text = "move: WASD or Left Stick +look: Arrows or Right Stick +up: Space or Right Trigger +down: Ctrl or Left Trigger +Release Cursor: Esc" diff --git a/MouseInput.gd b/MouseInput.gd new file mode 100644 index 0000000..e47e3c7 --- /dev/null +++ b/MouseInput.gd @@ -0,0 +1,11 @@ +extends Node + +var mouse_movement = Vector2.ZERO + +func get_mouse_movement(): + var ret = mouse_movement + mouse_movement -= ret + return ret + +func add_mouse_movement(relative): + mouse_movement += relative diff --git a/MouseInput.tscn b/MouseInput.tscn new file mode 100644 index 0000000..9dd303b --- /dev/null +++ b/MouseInput.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://MouseInput.gd" type="Script" id=1] + +[node name="Node" type="Node"] +script = ExtResource( 1 ) diff --git a/Player.gd b/Player.gd new file mode 100644 index 0000000..99c6abf --- /dev/null +++ b/Player.gd @@ -0,0 +1,61 @@ +extends KinematicBody + +export var speed = 20 +export var ang_speed = PI +export var mouse_dpi = 0.2 +export var pitch_min = -0.8 +export var pitch_max = 0.8 + +func joystick(neg_x: String,pos_x: String,neg_y: String,pos_y: String): + var joystick = Input.get_vector(neg_x,pos_x,neg_y,pos_y) + var joystrength = abs(joystick.length()) + if joystick != Vector2.ZERO: + joystick = joystick.normalized() + return Vector3(joystick.x,joystick.y,joystrength) + +func _physics_process(delta): + var d_ang_speed = ang_speed * delta + + var rotation = Transform(self.rotation, Vector3.ZERO) + var up = rotation * Vector3.UP + var forward = rotation * Vector3.FORWARD + var right = rotation * Vector3.RIGHT + + var stick = joystick("move_left", "move_right", "move_back", "move_forward") + var movement = Vector3.ZERO + movement += right * stick.x * stick.z * speed + movement += forward * stick.y * stick.z * speed + if Input.is_action_pressed("move_up"): + movement += up * speed + if Input.is_action_pressed("move_down"): + movement -= up * speed + movement = move_and_slide(movement, Vector3.UP) + + stick = joystick("look_right", "look_left", "look_down", "look_up") + var mouse_movement = MouseInput.get_mouse_movement() + if stick.z == 0.0: + stick.z = mouse_movement.length() * mouse_dpi + mouse_movement = -mouse_movement.normalized() + stick.x = mouse_movement.x + stick.y = mouse_movement.y + var pitch = forward.dot(Vector3.UP) + if (pitch >= pitch_min and stick.y < 0) or (pitch <= pitch_max and stick.y > 0): + rotate(right, stick.y * stick.z * d_ang_speed) + rotate(Vector3.UP, stick.x * stick.z * d_ang_speed) + +func _ready(): + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + +func _notification(what): + if what == MainLoop.NOTIFICATION_WM_FOCUS_OUT: + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + +func _input(event): + if event.is_action_pressed("ui_cancel"): + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE: + if event.is_action_pressed("click"): + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + else: + if event is InputEventMouseMotion: + MouseInput.add_mouse_movement(event.relative) diff --git a/Player.tscn b/Player.tscn new file mode 100644 index 0000000..098799c --- /dev/null +++ b/Player.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Player.gd" type="Script" id=2] + +[sub_resource type="SphereShape" id=1] + +[node name="Player" type="KinematicBody"] +collision_layer = 2 +script = ExtResource( 2 ) + +[node name="Camera" type="Camera" parent="."] + +[node name="CollisionShape" type="CollisionShape" parent="."] +shape = SubResource( 1 ) diff --git a/beak.tres b/beak.tres new file mode 100644 index 0000000..f9f1e08 --- /dev/null +++ b/beak.tres @@ -0,0 +1,4 @@ +[gd_resource type="SpatialMaterial" format=2] + +[resource] +albedo_color = Color( 0.968627, 0.956863, 0.117647, 1 ) diff --git a/chicken.pck b/chicken.pck Binary files differnew file mode 100644 index 0000000..f5e42f0 --- /dev/null +++ b/chicken.pck diff --git a/chicken.tres b/chicken.tres new file mode 100644 index 0000000..a0fffee --- /dev/null +++ b/chicken.tres @@ -0,0 +1,8 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://Chicken.png" type="Texture" id=1] + +[resource] +albedo_color = Color( 1, 0.992157, 0.933333, 1 ) +albedo_texture = ExtResource( 1 ) +uv1_triplanar = true diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/fence.png b/fence.png Binary files differnew file mode 100644 index 0000000..fa6a932 --- /dev/null +++ b/fence.png diff --git a/fence.png.import b/fence.png.import new file mode 100644 index 0000000..a00c29f --- /dev/null +++ b/fence.png.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/fence.png-459e2451c79a09a5b23fb58cc9a7be21.s3tc.stex" +path.etc2="res://.import/fence.png-459e2451c79a09a5b23fb58cc9a7be21.etc2.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true +} + +[deps] + +source_file="res://fence.png" +dest_files=[ "res://.import/fence.png-459e2451c79a09a5b23fb58cc9a7be21.s3tc.stex", "res://.import/fence.png-459e2451c79a09a5b23fb58cc9a7be21.etc2.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/fence.tres b/fence.tres new file mode 100644 index 0000000..8322411 --- /dev/null +++ b/fence.tres @@ -0,0 +1,9 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://fence.png" type="Texture" id=1] + +[resource] +params_use_alpha_scissor = true +params_alpha_scissor_threshold = 0.98 +albedo_texture = ExtResource( 1 ) +uv1_triplanar = true diff --git a/icon.png b/icon.png Binary files differnew file mode 100644 index 0000000..c98fbb6 --- /dev/null +++ b/icon.png diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..f1f5591 --- /dev/null +++ b/project.godot @@ -0,0 +1,101 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +[application] + +config/name="chicken-chaser-gd" +run/main_scene="res://Main.tscn" +config/icon="res://icon.png" + +[autoload] + +MouseInput="*res://MouseInput.tscn" + +[input] + +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) + ] +} +move_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) + ] +} +move_back={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) + ] +} +move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) + ] +} +move_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777238,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) + ] +} +look_left={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +look_right={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +look_up={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +look_down={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +click={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) + ] +} + +[layer_names] + +3d_physics/layer_1="Ground" +3d_physics/layer_2="Player" +3d_physics/layer_3="Chicken" + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +environment/default_environment="res://default_env.tres" |