master
DJh2o2 2024-02-22 10:54:47 +07:00
commit 6f558eb49f
19 changed files with 259 additions and 0 deletions

2
.gitattributes vendored

@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

2
.gitignore vendored

@ -0,0 +1,2 @@
# Godot 4+ specific ignores
.godot/

@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/contentModel.xml
/projectSettingsUpdater.xml
/.idea.01 - Pong.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/projectSettingsUpdater.xml
/.idea.01 - Pong.iml
/contentModel.xml
/modules.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

@ -0,0 +1,9 @@
<Project Sdk="Godot.NET.Sdk/4.3.0-dev.3">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'android' ">net7.0</TargetFramework>
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'ios' ">net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>Pong</RootNamespace>
</PropertyGroup>
</Project>

@ -0,0 +1,19 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01 - Pong", "01 - Pong.csproj", "{FAC0EE5C-7341-47F3-8BDA-1405682E5643}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
ExportDebug|Any CPU = ExportDebug|Any CPU
ExportRelease|Any CPU = ExportRelease|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FAC0EE5C-7341-47F3-8BDA-1405682E5643}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FAC0EE5C-7341-47F3-8BDA-1405682E5643}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAC0EE5C-7341-47F3-8BDA-1405682E5643}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
{FAC0EE5C-7341-47F3-8BDA-1405682E5643}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
{FAC0EE5C-7341-47F3-8BDA-1405682E5643}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
{FAC0EE5C-7341-47F3-8BDA-1405682E5643}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
EndGlobalSection
EndGlobal

@ -0,0 +1,23 @@
using Godot;
public partial class Player : Node2D {
[Export] private int playerNumber;
[Export] private int speed = 10;
public override void _UnhandledKeyInput(InputEvent @event) {
Vector2 position = Position;
if (playerNumber == 1) {
if (@event.IsAction("Player1Up")) position.Y -= speed;
else if (@event.IsAction("Player1Down")) position.Y += speed;
}
else {
if (@event.IsAction("Player2Up")) position.Y -= speed;
else if (@event.IsAction("Player2Down")) position.Y += speed;
}
if (position.Y > 520) position.Y = 520;
if (position.Y < 0) position.Y = 0;
Position = position;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4fir02w0nns3"
path="res://.godot/imported/Player.png-3b381e068d1d74cc2895fb9be41402b0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Player.png"
dest_files=["res://.godot/imported/Player.png-3b381e068d1d74cc2895fb9be41402b0.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

@ -0,0 +1,11 @@
[gd_scene load_steps=2 format=3 uid="uid://bxkg2ri346c2o"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_toecu"]
size = Vector2(30, 30)
[node name="Ball" type="Node2D"]
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(16, 16)
scale = Vector2(1, 1.14)
texture = SubResource("PlaceholderTexture2D_toecu")

@ -0,0 +1 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

After

Width:  |  Height:  |  Size: 950 B

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dabejs0csa57v"
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

@ -0,0 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://dbgbygehmmopa"]
[ext_resource type="Script" path="res://Player.cs" id="1_cs5ta"]
[ext_resource type="Texture2D" uid="uid://4fir02w0nns3" path="res://Player.png" id="2_jdmud"]
[node name="Player1" type="Node2D"]
script = ExtResource("1_cs5ta")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(16, 200)
texture = ExtResource("2_jdmud")

@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://3acuhn3ykmnq"]
[ext_resource type="PackedScene" uid="uid://dbgbygehmmopa" path="res://player.tscn" id="1_7bgs4"]
[ext_resource type="PackedScene" uid="uid://bxkg2ri346c2o" path="res://ball.tscn" id="2_dcxy0"]
[node name="Pong" type="Node2D"]
[node name="Player1" parent="." instance=ExtResource("1_7bgs4")]
position = Vector2(128, 256)
playerNumber = 1
[node name="Player2" parent="." instance=ExtResource("1_7bgs4")]
position = Vector2(1080, 256)
playerNumber = 2
[node name="Ball" parent="." instance=ExtResource("2_dcxy0")]
position = Vector2(560, 304)

@ -0,0 +1,43 @@
; 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="01 - Pong"
run/main_scene="res://pong.tscn"
config/features=PackedStringArray("4.3", "C#", "Forward Plus")
config/icon="res://icon.svg"
[dotnet]
project/assembly_name="01 - Pong"
[input]
Player1Up={
"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":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
Player1Down={
"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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
Player2Up={
"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":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
Player2Down={
"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":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}