commit 86a9ee6d8ca373ab9f57422b6cf7fb79c1549d16 Author: Fries Date: Sat May 4 15:17:07 2024 -0700 Create the beginnings of a FlappyBird clone. diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/Scenes/bird.tscn b/Scenes/bird.tscn new file mode 100644 index 0000000..cb7fb18 --- /dev/null +++ b/Scenes/bird.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=4 format=3 uid="uid://cij4p7ni0rujg"] + +[ext_resource type="Script" path="res://Scripts/Bird/movement.gd" id="1_4imb2"] +[ext_resource type="Texture2D" uid="uid://cfotdween4etw" path="res://icon.svg" id="1_rcshh"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_5ukl2"] +size = Vector2(102, 128) + +[node name="Bird" type="CharacterBody2D"] +script = ExtResource("1_4imb2") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_rcshh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_5ukl2") diff --git a/Scenes/flappy_bird.tscn b/Scenes/flappy_bird.tscn new file mode 100644 index 0000000..02776c7 --- /dev/null +++ b/Scenes/flappy_bird.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://c0tpkr1ghv33o"] + +[ext_resource type="PackedScene" uid="uid://cij4p7ni0rujg" path="res://Scenes/bird.tscn" id="1_f1cub"] +[ext_resource type="PackedScene" uid="uid://k6su505fjc6g" path="res://Scenes/pipes.tscn" id="2_ypsty"] + +[node name="FlappyBird" type="Node2D"] + +[node name="Bird" parent="." instance=ExtResource("1_f1cub")] + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="Pipes" parent="." instance=ExtResource("2_ypsty")] +position = Vector2(376, 0) diff --git a/Scenes/pipes.tscn b/Scenes/pipes.tscn new file mode 100644 index 0000000..25dbca0 --- /dev/null +++ b/Scenes/pipes.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=2 format=3 uid="uid://k6su505fjc6g"] + +[ext_resource type="Texture2D" uid="uid://cfotdween4etw" path="res://icon.svg" id="1_xgxmx"] + +[node name="Pipes" type="Node2D"] + +[node name="Pipe" type="AnimatableBody2D" parent="."] +position = Vector2(0, -515) +scale = Vector2(0.5, 5.65) + +[node name="Icon" type="Sprite2D" parent="Pipe"] +texture = ExtResource("1_xgxmx") + +[node name="Pipe2" type="AnimatableBody2D" parent="."] +position = Vector2(0, 384) +scale = Vector2(0.5, 5.65) + +[node name="Icon" type="Sprite2D" parent="Pipe2"] +texture = ExtResource("1_xgxmx") diff --git a/Scripts/Bird/movement.gd b/Scripts/Bird/movement.gd new file mode 100644 index 0000000..5e6f22c --- /dev/null +++ b/Scripts/Bird/movement.gd @@ -0,0 +1,26 @@ +extends CharacterBody2D + +const GRAVITY : int = 1000 +const MAX_VELOCITY : int = 600 +const FLAP_SPEED : int = -500 + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + +func _input(event): + if event.is_action_pressed("jump"): + flap() + +func _physics_process(delta): + velocity.y += GRAVITY * delta + if velocity.y > MAX_VELOCITY: + velocity.y = MAX_VELOCITY + move_and_collide(velocity * delta) + +func flap(): + velocity.y = FLAP_SPEED diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..3fe4f4a --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..c3d501d --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfotdween4etw" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..fd19f74 --- /dev/null +++ b/project.godot @@ -0,0 +1,38 @@ +; 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=5 + +[application] + +config/name="FlappyBird" +run/main_scene="res://Scenes/flappy_bird.tscn" +config/features=PackedStringArray("4.2", "Mobile") +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/stretch/mode="canvas_items" + +[dotnet] + +project/assembly_name="FlappyBird" + +[input] + +jump={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null) +] +} + +[rendering] + +renderer/rendering_method="mobile"