From af7ecc10e3f93a8d45790d8b72f72043ffcd0a9a Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Sat, 2 Mar 2024 08:31:57 +0100 Subject: [PATCH] initial commit --- .gitattributes | 2 ++ .gitignore | 2 ++ Ball.tscn | 15 +++++++++++++++ Playground.tscn | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ Rack2et.gd | 28 +++++++++++++++++++++++++++ Racket.gd | 16 ++++++++++++++++ Racket.tscn | 16 ++++++++++++++++ icon.svg | 1 + icon.svg.import | 37 +++++++++++++++++++++++++++++++++++ project.godot | 44 ++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 212 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Ball.tscn create mode 100644 Playground.tscn create mode 100644 Rack2et.gd create mode 100644 Racket.gd create mode 100644 Racket.tscn create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 project.godot 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/Ball.tscn b/Ball.tscn new file mode 100644 index 0000000..8ba9a21 --- /dev/null +++ b/Ball.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=2 format=3 uid="uid://dmsd30hc2ob1w"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_bdxrg"] +size = Vector2(40, 40) + +[node name="Ball" type="RigidBody2D"] +gravity_scale = 1.66533e-16 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(20, 20) +shape = SubResource("RectangleShape2D_bdxrg") + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 40.0 +offset_bottom = 40.0 diff --git a/Playground.tscn b/Playground.tscn new file mode 100644 index 0000000..cc8f87a --- /dev/null +++ b/Playground.tscn @@ -0,0 +1,51 @@ +[gd_scene load_steps=5 format=3 uid="uid://catrpx1vuhvou"] + +[ext_resource type="PackedScene" uid="uid://ce4mnfokb6pkn" path="res://Racket.tscn" id="1_ywul3"] +[ext_resource type="Script" path="res://Racket.gd" id="2_wrt7t"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_u7af8"] +size = Vector2(100, 600) + +[sub_resource type="LabelSettings" id="LabelSettings_ildlg"] +font_size = 64 + +[node name="Playground" type="Node2D"] + +[node name="Wall" type="StaticBody2D" parent="."] + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Wall"] +polygon = PackedVector2Array(0, 8, 0, 600, 1200, 600, 1200, 8, 0, 0, 0, 8, 1192, 16, 1192, 16, 1192, 592, 8, 592, 8, 8) + +[node name="GoalAreaLeft" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="GoalAreaLeft"] +position = Vector2(50, 300) +shape = SubResource("RectangleShape2D_u7af8") + +[node name="GoalAreaRight" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="GoalAreaRight"] +position = Vector2(1150, 300) +shape = SubResource("RectangleShape2D_u7af8") + +[node name="RacketLeft" parent="." instance=ExtResource("1_ywul3")] +position = Vector2(128, 224) +script = ExtResource("2_wrt7t") +metadata/UP_KEY = "left_up" +metadata/DOWN_KEY = "left_down" + +[node name="RacketRight" parent="." instance=ExtResource("1_ywul3")] +position = Vector2(1032, 224) +script = ExtResource("2_wrt7t") +metadata/UP_KEY = "right_up" +metadata/DOWN_KEY = "right_down" + +[node name="Label" type="Label" parent="."] +offset_left = 544.0 +offset_top = 32.0 +offset_right = 673.0 +offset_bottom = 120.0 +text = "0 - 0" +label_settings = SubResource("LabelSettings_ildlg") +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/Rack2et.gd b/Rack2et.gd new file mode 100644 index 0000000..3524013 --- /dev/null +++ b/Rack2et.gd @@ -0,0 +1,28 @@ +extends CharacterBody2D + + +const SPEED = 300.0 +const JUMP_VELOCITY = -400.0 + +# Get the gravity from the project settings to be synced with RigidBody nodes. +var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") + + +func _physics_process(delta): + # Add the gravity. + if not is_on_floor(): + velocity.y += gravity * delta + + # Handle jump. + if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + velocity.y = JUMP_VELOCITY + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var direction = Input.get_axis("ui_left", "ui_right") + if direction: + velocity.x = direction * SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + + move_and_slide() diff --git a/Racket.gd b/Racket.gd new file mode 100644 index 0000000..8e34167 --- /dev/null +++ b/Racket.gd @@ -0,0 +1,16 @@ +extends CharacterBody2D + + +const SPEED = 300.0 + + +func _physics_process(delta): + + + if Input.is_action_pressed(get_meta("UP_KEY")): + velocity.y = move_toward(velocity.y, -1, SPEED) + move_and_collide(Vector2.UP * SPEED * delta) + + if Input.is_action_pressed(get_meta("DOWN_KEY")): + velocity.y = move_toward(velocity.y, 1, SPEED) + move_and_collide(Vector2.DOWN * SPEED * delta) diff --git a/Racket.tscn b/Racket.tscn new file mode 100644 index 0000000..8c1009e --- /dev/null +++ b/Racket.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=3 uid="uid://ce4mnfokb6pkn"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ehve4"] +size = Vector2(40, 144) + +[node name="Racket" type="CharacterBody2D"] +up_direction = Vector2(2.94434e-12, 1) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(20, 72) +shape = SubResource("RectangleShape2D_ehve4") + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 40.0 +offset_bottom = 144.0 +color = Color(0.0117647, 0.0117647, 0.0117647, 1) diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..b370ceb --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..b127d99 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1pvto6so6i1s" +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..f99bf1a --- /dev/null +++ b/project.godot @@ -0,0 +1,44 @@ +; 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="pong" +run/main_scene="res://Playground.tscn" +config/features=PackedStringArray("4.2", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=1200 +window/size/viewport_height=600 + +[input] + +right_up={ +"deadzone": 0.0, +"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":79,"physical_keycode":0,"key_label":0,"unicode":111,"echo":false,"script":null) +] +} +right_down={ +"deadzone": 0.0, +"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":76,"physical_keycode":0,"key_label":0,"unicode":108,"echo":false,"script":null) +] +} +left_up={ +"deadzone": 0.0, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +left_down={ +"deadzone": 0.0, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +] +}