Compare commits
4 commits
7c1275f477
...
e1a3ca9c59
| Author | SHA1 | Date | |
|---|---|---|---|
| e1a3ca9c59 | |||
| a31f403424 | |||
| 36cbc9cf29 | |||
| 7f34dd7b18 |
9 changed files with 100 additions and 5 deletions
BIN
assets/environment/common_tileset.aseprite
Normal file
BIN
assets/environment/common_tileset.aseprite
Normal file
Binary file not shown.
BIN
assets/environment/common_tileset.png
Normal file
BIN
assets/environment/common_tileset.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 464 B |
40
assets/environment/common_tileset.png.import
Normal file
40
assets/environment/common_tileset.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cguqq6sx2fone"
|
||||
path="res://.godot/imported/common_tileset.png-92b417788decb5180cc4b915c575cd26.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/environment/common_tileset.png"
|
||||
dest_files=["res://.godot/imported/common_tileset.png-92b417788decb5180cc4b915c575cd26.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
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/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
|
|
@ -27,7 +27,7 @@ gdscript/warnings/untyped_declaration=2
|
|||
|
||||
window/size/viewport_width=320
|
||||
window/size/viewport_height=240
|
||||
window/stretch/mode="viewport"
|
||||
window/stretch/mode="canvas_items"
|
||||
window/stretch/scale_mode="integer"
|
||||
|
||||
[editor]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
[gd_resource type="TileSet" load_steps=9 format=3 uid="uid://doja61ouvb77l"]
|
||||
[gd_resource type="TileSet" load_steps=11 format=3 uid="uid://doja61ouvb77l"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cguqq6sx2fone" path="res://assets/environment/common_tileset.png" id="1_br5dt"]
|
||||
[ext_resource type="Texture2D" uid="uid://cwyhgn5jgia1m" path="res://assets/environment/proto.png" id="1_ohrjv"]
|
||||
[ext_resource type="Texture2D" uid="uid://nk83a47ifsqo" path="res://assets/environment/Block Tileset 4 Colors RVG.png" id="2_br5dt"]
|
||||
[ext_resource type="Texture2D" uid="uid://coabfw2isxhtc" path="res://assets/environment/match3_db16.png" id="3_xww2a"]
|
||||
|
|
@ -9,6 +10,17 @@ tile_data = PackedInt32Array(0, 458755, 4, 65536, 327683, 4, 131072, 458755, 0,
|
|||
|
||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_ohrjv"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xww2a"]
|
||||
texture = ExtResource("1_br5dt")
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_2/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
1:0/0 = 0
|
||||
1:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
1:1/0 = 0
|
||||
1:1/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
0:1/0 = 0
|
||||
0:1/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_pdhcq"]
|
||||
resource_name = "prototype floor"
|
||||
texture = ExtResource("1_ohrjv")
|
||||
|
|
@ -486,4 +498,5 @@ terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
|
|||
sources/2 = SubResource("TileSetAtlasSource_pdhcq")
|
||||
sources/3 = SubResource("TileSetAtlasSource_58657")
|
||||
sources/4 = SubResource("TileSetAtlasSource_ln5p0")
|
||||
sources/0 = SubResource("TileSetAtlasSource_xww2a")
|
||||
pattern_0 = SubResource("TileMapPattern_ohrjv")
|
||||
|
|
|
|||
31
scenes/level_camera/level_camera_2d.gd
Normal file
31
scenes/level_camera/level_camera_2d.gd
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
extends Camera2D
|
||||
|
||||
enum FollowTarget { BALL, PLAYER1, PLAYER2 }
|
||||
|
||||
@export_range(0, 1, 0.01) var ball_weight: float = 0.6
|
||||
@export_range(0, 1, 0.01) var player_weight: float = 0.2
|
||||
@export var follow_speed: float = 8.0
|
||||
@export var deadzone_margin: float = 100.0
|
||||
|
||||
@onready var ball: RigidBody2D = get_node("../Ball")
|
||||
@onready var player1: CharacterBody2D = get_node("../Player1")
|
||||
@onready var player2: CharacterBody2D = get_node("../Player2")
|
||||
|
||||
var target_pos: Vector2 = Vector2.ZERO
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var total_weight: float = ball_weight + player_weight * 2.0
|
||||
target_pos = (
|
||||
ball.global_position * ball_weight +
|
||||
player1.global_position * player_weight +
|
||||
player2.global_position * player_weight
|
||||
) / total_weight
|
||||
|
||||
global_position = global_position.lerp(target_pos, follow_speed * delta)
|
||||
|
||||
var spread: float = maxf(
|
||||
absf(player1.global_position.x - player2.global_position.x),
|
||||
absf(player1.global_position.y - player2.global_position.y)
|
||||
)
|
||||
var target_zoom: Vector2 = Vector2.ONE * (600.0 / spread)
|
||||
zoom = target_zoom.limit_length(1.5)
|
||||
1
scenes/level_camera/level_camera_2d.gd.uid
Normal file
1
scenes/level_camera/level_camera_2d.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bsvjinfmr1pek
|
||||
6
scenes/level_camera/level_camera_2d.tscn
Normal file
6
scenes/level_camera/level_camera_2d.tscn
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://7nljh05o8b8e"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bsvjinfmr1pek" path="res://scenes/level_camera/level_camera_2d.gd" id="1_rls2d"]
|
||||
|
||||
[node name="LevelCamera2D" type="Camera2D"]
|
||||
script = ExtResource("1_rls2d")
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
[gd_scene load_steps=4 format=4 uid="uid://d3c6aioatcy20"]
|
||||
[gd_scene load_steps=5 format=4 uid="uid://d3c6aioatcy20"]
|
||||
|
||||
[ext_resource type="TileSet" uid="uid://doja61ouvb77l" path="res://resources/tilesets/level.tres" id="1_uu6xs"]
|
||||
[ext_resource type="PackedScene" uid="uid://642nm6c4mpxx" path="res://scenes/player/player.tscn" id="2_r0du0"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmgwv41ht3q4j" path="res://scenes/ball/ball.tscn" id="3_r0du0"]
|
||||
[ext_resource type="PackedScene" uid="uid://7nljh05o8b8e" path="res://scenes/level_camera/level_camera_2d.tscn" id="4_jyhfs"]
|
||||
|
||||
[node name="Main" type="Node"]
|
||||
|
||||
|
|
@ -13,7 +14,7 @@ collision_enabled = false
|
|||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="BlockTilemap" type="TileMapLayer" parent="."]
|
||||
tile_map_data = PackedByteArray("AAADAA0AAwAEAAIAAAADAAwAAwAEAAIAAAADAAsAAwAEAAIAAAADAAoAAwAEAAIAAAADAAkAAwAEAAIAAAADAAgAAwAEAAIAAAADAAcAAwAEAAIAAAADAAYAAwAEAAIAAAADAAUAAwAEAAIAAAADAAQAAwAEAAIAAAADAAMAAwAEAAIAAAADAAIAAwAEAAIAAAADAAEAAwAEAAIAAAAQAA0AAwAEAAIAAAAQAAwAAwAEAAIAAAAQAAsAAwAEAAIAAAAQAAoAAwAEAAIAAAAQAAkAAwAEAAIAAAAQAAgAAwAEAAIAAAAQAAcAAwAEAAIAAAAQAAYAAwAEAAIAAAAQAAUAAwAEAAIAAAAQAAQAAwAEAAIAAAAQAAMAAwAEAAIAAAAQAAIAAwAEAAIAAAAQAAEAAwAEAAIAAAADAAAAAwAEAAEAAAAQAAAAAwAEAAEAAAADAA4AAwAEAAMAAAAQAA4AAwAEAAMAAAAEAAoAAwAHAAQAAAAEAAsAAwAFAAQAAAAEAAwAAwAHAAAAAAAEAA0AAwAGAAUAAAAEAA4AAwAGAAcAAAAFAAsAAwAHAAQAAAAFAAwAAwAFAAQAAAAFAA0AAwAHAAUAAAAFAA4AAwAHAAcAAAAGAAwAAwAHAAQAAAAGAA0AAwAEAAEAAAAGAA4AAwAEAAMAAAANAAwAAwAHAAMAAAANAA0AAwAEAAEAAAANAA4AAwAEAAMAAAAOAAsAAwAHAAMAAAAOAAwAAwAGAAMAAAAOAA0AAwAHAAIAAAAOAA4AAwAGAAcAAAAPAAoAAwAHAAMAAAAPAAsAAwAGAAMAAAAPAAwAAwAEAAEAAAAPAA0AAwAEAAMAAAAPAA4AAwAHAAcAAAAFAAAAAwAGAAUAAAAGAAAAAwAHAAUAAAANAAAAAwAEAAEAAAAOAAAAAwAGAAAAAAAGAAIAAwAGAAQAAAAFAAMAAwAGAAQAAAAEAAQAAwAGAAQAAAANAAIAAwAFAAMAAAAOAAMAAwAFAAMAAAAPAAQAAwAFAAMAAAAOAAIAAwAGAAMAAAAPAAMAAwAGAAMAAAAFAAIAAwAFAAIAAAAEAAMAAwAFAAIAAAANAAEAAwAEAAMAAAAGAAEAAwAHAAIAAAAEAAEAAwAEAAQAAAAFAAEAAwAHAAcAAAAEAAAAAwAEAAAAAAAPAAIAAwAEAAQAAAAOAAEAAwAHAAAAAAAEAAIAAwAEAAUAAAAPAAEAAwAGAAMAAAAPAAAAAwAGAAMAAAAHAA0ABAAAAAMAAAAIAA0ABAABAAMAAAAJAA0ABAACAAMAAAAKAA0ABAADAAMAAAALAA0ABAAEAAMAAAAMAA0ABAAFAAMAAAAHAAEABAAAAAMAAAAIAAEABAABAAMAAAAJAAEABAACAAMAAAAKAAEABAADAAMAAAALAAEABAAEAAMAAAAMAAEABAAFAAMAAAA=")
|
||||
tile_map_data = PackedByteArray("AAADAA0AAwAEAAIAAAADAAwAAwAEAAIAAAADAAsAAwAEAAIAAAADAAoAAwAEAAIAAAADAAkAAwAEAAIAAAADAAgAAwAEAAIAAAADAAcAAwAEAAIAAAADAAYAAwAEAAIAAAADAAUAAwAEAAIAAAADAAQAAwAEAAIAAAADAAMAAwAEAAIAAAADAAIAAwAEAAIAAAADAAEAAwAEAAIAAAAQAA0AAwAEAAIAAAAQAAwAAwAEAAIAAAAQAAsAAwAEAAIAAAAQAAoAAwAEAAIAAAAQAAkAAwAEAAIAAAAQAAgAAwAEAAIAAAAQAAcAAwAEAAIAAAAQAAYAAwAEAAIAAAAQAAUAAwAEAAIAAAAQAAQAAwAEAAIAAAAQAAMAAwAEAAIAAAAQAAIAAwAEAAIAAAAQAAEAAwAEAAIAAAADAAAAAwAEAAEAAAAQAAAAAwAEAAEAAAADAA4AAwAEAAMAAAAQAA4AAwAEAAMAAAAEAAoAAwAHAAQAAAAEAAsAAwAFAAQAAAAEAAwAAwAHAAAAAAAEAA0AAwAGAAUAAAAEAA4AAwAGAAcAAAAFAAsAAwAHAAQAAAAFAAwAAwAFAAQAAAAFAA0AAwAHAAUAAAAFAA4AAwAHAAcAAAAGAAwAAwAHAAQAAAAGAA0AAwAEAAEAAAAGAA4AAwAEAAMAAAANAAwAAwAHAAMAAAANAA0AAwAEAAEAAAANAA4AAwAEAAMAAAAOAAsAAwAHAAMAAAAOAAwAAwAGAAMAAAAOAA0AAwAHAAIAAAAOAA4AAwAGAAcAAAAPAAoAAwAHAAMAAAAPAAsAAwAGAAMAAAAPAAwAAwAEAAEAAAAPAA0AAwAEAAMAAAAPAA4AAwAHAAcAAAAFAAAAAwAGAAUAAAAGAAAAAwAHAAUAAAANAAAAAwAEAAEAAAAOAAAAAwAGAAAAAAAGAAIAAwAGAAQAAAAFAAMAAwAGAAQAAAAEAAQAAwAGAAQAAAANAAIAAwAFAAMAAAAOAAMAAwAFAAMAAAAPAAQAAwAFAAMAAAAOAAIAAwAGAAMAAAAPAAMAAwAGAAMAAAAFAAIAAwAFAAIAAAAEAAMAAwAFAAIAAAANAAEAAwAEAAMAAAAGAAEAAwAHAAIAAAAEAAEAAwAEAAQAAAAFAAEAAwAHAAcAAAAEAAAAAwAEAAAAAAAPAAIAAwAEAAQAAAAOAAEAAwAHAAAAAAAEAAIAAwAEAAUAAAAPAAEAAwAGAAMAAAAPAAAAAwAGAAMAAAAHAA0AAAABAAEAAAAIAA0AAAABAAEAAAAJAA0AAAABAAEAAAAKAA0AAAABAAEAAAALAA0AAAABAAEAAAAMAA0AAAABAAEAAAAHAAEAAAABAAEAAAAIAAEAAAABAAEAAAAJAAEAAAABAAEAAAAKAAEAAAABAAEAAAALAAEAAAABAAEAAAAMAAEAAAABAAEAAAAEAAcAAAAAAAAAAAAEAAYAAAAAAAAAAAAFAAYAAAAAAAAAAAAGAAYAAAAAAAAAAAAHAAYAAAAAAAAAAAAIAAYAAAAAAAAAAAAJAAYAAAAAAAAAAAAKAAYAAAAAAAAAAAALAAYAAAAAAAAAAAAMAAYAAAAAAAAAAAANAAYAAAAAAAAAAAAOAAYAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAcAAAAAAAAAAAAOAAcAAAAAAAAAAAANAAcAAAAAAAAAAAAMAAcAAAAAAAAAAAALAAcAAAAAAAAAAAAKAAcAAAAAAAAAAAAJAAcAAAAAAAAAAAAIAAcAAAAAAAAAAAAHAAcAAAAAAAAAAAAGAAcAAAAAAAAAAAAFAAcAAAAAAAAAAAA=")
|
||||
tile_set = ExtResource("1_uu6xs")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
|
|
@ -21,8 +22,11 @@ metadata/_edit_lock_ = true
|
|||
position = Vector2(141, 184)
|
||||
|
||||
[node name="Player2" parent="." instance=ExtResource("2_r0du0")]
|
||||
position = Vector2(154, 97)
|
||||
position = Vector2(167, 77)
|
||||
id = 2
|
||||
|
||||
[node name="Ball" parent="." instance=ExtResource("3_r0du0")]
|
||||
position = Vector2(162, 115)
|
||||
|
||||
[node name="LevelCamera2D" parent="." instance=ExtResource("4_jyhfs")]
|
||||
ball_weight = 0.4
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue