Compare commits

..

No commits in common. "60ee6550018530c06e51d448d71fb8e7f2827c1e" and "9a9eabd33124f3619348cb21c7f0aadf87bf8ef2" have entirely different histories.

11 changed files with 32 additions and 340 deletions

View File

@ -1,70 +1,22 @@
[gd_scene load_steps=11 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://src/actors/players/playerE/PlayerE.tscn" type="PackedScene" id=1] [ext_resource path="res://src/actors/players/playerE/PlayerE.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/levels/TestBox.tscn" type="PackedScene" id=2] [ext_resource path="res://src/levels/TestBox.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/ui/HUD.tscn" type="PackedScene" id=3] [ext_resource path="res://src/ui/HUD.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/ui/scene_transition.tscn" type="PackedScene" id=4] [ext_resource path="res://src/ui/scene_transition.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/classes/camera_guide.gd" type="Script" id=5]
[ext_resource path="res://src/Camera2D.gd" type="Script" id=6]
[ext_resource path="res://src/Main.gd" type="Script" id=7]
[sub_resource type="Shader" id=2]
code = "shader_type canvas_item;
uniform vec2 cam_offset = vec2(0.0,0.0);
void vertex() {
VERTEX += cam_offset;
}"
[sub_resource type="ShaderMaterial" id=3]
shader = SubResource( 2 )
shader_param/cam_offset = Vector2( 0, 0 )
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 160, 90 )
[node name="Main" type="Node2D"] [node name="Main" type="Node2D"]
script = ExtResource( 7 )
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."] [node name="SceneTransition" parent="." instance=ExtResource( 4 )]
[node name="ViewportContainer" type="ViewportContainer" parent="."] [node name="TestBox" parent="." instance=ExtResource( 2 )]
material = SubResource( 3 )
margin_right = 322.0
margin_bottom = 182.0
rect_scale = Vector2( 2, 2 )
[node name="Viewport" type="Viewport" parent="ViewportContainer"]
size = Vector2( 320, 180 )
handle_input_locally = false
render_target_update_mode = 3
[node name="SceneTransition" parent="ViewportContainer/Viewport" instance=ExtResource( 4 )]
[node name="TestBox" parent="ViewportContainer/Viewport" instance=ExtResource( 2 )]
__meta__ = { __meta__ = {
"_edit_lock_": true "_edit_lock_": true
} }
[node name="PlayerE" parent="ViewportContainer/Viewport" instance=ExtResource( 1 )] [node name="PlayerE" parent="." instance=ExtResource( 1 )]
position = Vector2( 112, 56 ) position = Vector2( 112, 56 )
[node name="UI_Layer" parent="ViewportContainer/Viewport" instance=ExtResource( 3 )] [node name="UI_Layer" parent="." instance=ExtResource( 3 )]
[node name="CameraGuide" type="KinematicBody2D" parent="ViewportContainer/Viewport"] [node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
position = Vector2( 160, 90 )
collision_layer = 0
collision_mask = 256
script = ExtResource( 5 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="ViewportContainer/Viewport/CameraGuide"]
visible = false
shape = SubResource( 1 )
one_way_collision = true
[node name="Camera2D" type="Camera2D" parent="ViewportContainer/Viewport"]
position = Vector2( 160, 90 )
current = true
script = ExtResource( 6 )
tracking_node_path = NodePath("../CameraGuide")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 B

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/no_cam_tile.png-aa593baf34cdb8ad03f64fc21f010c45.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/UI/no_cam_tile.png"
dest_files=[ "res://.import/no_cam_tile.png-aa593baf34cdb8ad03f64fc21f010c45.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=false
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

View File

@ -9,10 +9,6 @@ onready var player_start_position := Vector2(50,50)
onready var current_music_track :AudioStream onready var current_music_track :AudioStream
onready var viewport_container = get_node("/root/Main/ViewportContainer") #$ViewportContainer
onready var viewport = get_node("/root/Main/ViewportContainer/Viewport") # $ViewportContainer/Viewport
onready var camera_guide :CameraGuide = get_node("/root/Main/ViewportContainer/Viewport/CameraGuide")
func change_music_track(_music_track :AudioStream ): func change_music_track(_music_track :AudioStream ):
if current_music_track != _music_track: if current_music_track != _music_track:
current_music_track = _music_track current_music_track = _music_track
@ -33,29 +29,24 @@ func stop_music():
func change_level(_level_name :String, _position_name :String): func change_level(_level_name :String, _position_name :String):
print("res://src/levels/" + _level_name + ".tscn" ) print("res://src/levels/" + _level_name + ".tscn" )
var SceneTransition = get_node("/root/Main/ViewportContainer/Viewport/SceneTransition") var SceneTransition = get_node("/root/Main/SceneTransition")
#var simultaneous_scene = preload("res://levels/level2.tscn").instance() #var simultaneous_scene = preload("res://levels/level2.tscn").instance()
var new_level = load("res://src/levels/" + _level_name + ".tscn" ).instance() var new_level = load("res://src/levels/" + _level_name + ".tscn" ).instance()
#print (get_tree().get_root().get_children()) #print (get_tree().get_root().get_children())
for l in get_node("/root/Main").get_children():
for l in get_node("/root/Main/ViewportContainer/Viewport").get_children():
#print (get_node("/root/Main").get_children()) #print (get_node("/root/Main").get_children())
if l is Level: if l is Level:
camera_guide.disable_tracking()
SceneTransition.transition_dissolve("foo") SceneTransition.transition_dissolve("foo")
yield(SceneTransition,"done") yield(SceneTransition,"done")
print(l) print(l)
get_node("/root/Main/ViewportContainer/Viewport").remove_child(l) get_node("/root/Main").remove_child(l)
get_node("/root/Main/ViewportContainer/Viewport").add_child(new_level) get_node("/root/Main").add_child(new_level)
get_node("/root/Main/ViewportContainer/Viewport").move_child(new_level,1) get_node("/root/Main").move_child(new_level,1)
##TODO: Probably set start position ##TODO: Probably set start position
if new_level.entrances.has(_position_name): if new_level.entrances.has(_position_name):
player_start_position = new_level.entrances[_position_name].transform.origin player_start_position = new_level.entrances[_position_name].transform.origin
print (get_node("/root/Main/ViewportContainer/Viewport").get_children()) print (get_node("/root/Main").get_children())
#get_node("/root/Main/ViewportContainer/Viewport/CameraGuide").global_position = Vector2(160,90)
SceneTransition.reset() SceneTransition.reset()
camera_guide.transform.origin = Vector2(160,90)
camera_guide.enable_tracking()
#get_node("/root/Main").add_child_below_node(SceneTransition,new_level) #get_node("/root/Main").add_child_below_node(SceneTransition,new_level)

View File

@ -24,11 +24,6 @@ _global_script_classes=[ {
"language": "GDScript", "language": "GDScript",
"path": "res://lib/classes/audiostreamplayer_state_receiver.gd" "path": "res://lib/classes/audiostreamplayer_state_receiver.gd"
}, { }, {
"base": "KinematicBody2D",
"class": "CameraGuide",
"language": "GDScript",
"path": "res://src/classes/camera_guide.gd"
}, {
"base": "", "base": "",
"class": "GitAPI", "class": "GitAPI",
"language": "NativeScript", "language": "NativeScript",
@ -123,7 +118,6 @@ _global_script_class_icons={
"Actor": "", "Actor": "",
"AnimatedSprite_StateReceiver": "", "AnimatedSprite_StateReceiver": "",
"AudioStreamPlayer_StateReceiver": "", "AudioStreamPlayer_StateReceiver": "",
"CameraGuide": "",
"GitAPI": "", "GitAPI": "",
"HealthComponent": "", "HealthComponent": "",
"HealthPickup": "", "HealthPickup": "",
@ -170,10 +164,12 @@ shapes/collision/shape_color=Color( 1, 1, 1, 0.419608 )
[display] [display]
window/size/width=640 window/size/width=320
window/size/height=360 window/size/height=180
window/size/resizable=false window/size/resizable=false
window/stretch/mode="2d" window/size/test_width=960
window/size/test_height=540
window/stretch/mode="viewport"
window/stretch/aspect="keep" window/stretch/aspect="keep"
[editor_plugins] [editor_plugins]
@ -299,6 +295,4 @@ common/physics_interpolation=true
[rendering] [rendering]
quality/driver/driver_name="GLES2" quality/driver/driver_name="GLES2"
2d/snapping/use_gpu_pixel_snap=true
vram_compression/import_etc=true vram_compression/import_etc=true
batching/precision/uv_contract=true

View File

@ -1,95 +0,0 @@
extends Camera2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
var game_size := Vector2(320,180)
onready var window_scale :float = (OS.window_size / game_size).x
onready var actual_cam_pos := global_position
export var acceleration := 2
export var deceleration := 800.0
export var max_speed := 60.0
export var snap_unit := 10
export var tracking_node_path :NodePath
var _tracking_node :KinematicBody2D
func _ready():
_tracking_node = get_node(tracking_node_path)
var velocity :float = 0
var tracking_pos := Vector2(0,0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
#var tracking_pos = PlayerInfo.player_position
# var tracking_pos = lerp(global_position, _tracking_node.global_position , 0.7)
#var tracking_pos = _tracking_node.global_position.round()
var tp = _tracking_node.global_position.floor()
var snapped_target_pos = Vector2(
round(tp.x / snap_unit) * snap_unit,
round(tp.y / snap_unit) * snap_unit
)
# if tracking_pos.distance_to(tp) >= 4: # tile width?
# tracking_pos = tp.snapped(Vector2(2,2))
tracking_pos = snapped_target_pos
# actual_cam_pos = lerp(actual_cam_pos, tracking_pos, delta * 5)
#actual_cam_pos = lerp(actual_cam_pos, tracking_pos, .2)
var distance_to := global_position.distance_to(tracking_pos)
if distance_to < snap_unit:
velocity = 1
else:
velocity += delta * distance_to
# Clamp to max speed
if velocity > max_speed:
velocity = max_speed
actual_cam_pos = actual_cam_pos.move_toward(tracking_pos, velocity)
#actual_cam_pos = global_position
#actual_cam_pos = tracking_pos.floor()
#position = actual_cam_pos
#var cam_subpixel_pos = actual_cam_pos.round() - actual_cam_pos
var cam_subpixel_pos :Vector2 = global_position - tracking_pos
#cam_subpixel_pos = cam_subpixel_pos.snapped(Vector2(0.2,0.2))
global_position = actual_cam_pos.floor()
#LevelInfo.viewport_container.material.set_shader_param("cam_offset", cam_subpixel_pos )
#global_position = actual_cam_pos.round()
UiManager.debug_text = ("SP: " + str(cam_subpixel_pos.snapped(Vector2(0.01,0.01))) +
"\nCP: " + str (global_position.snapped(Vector2(0.1,0.1))) +
"\nTP: " + str(tracking_pos) +
"\nDT: " + str(distance_to)
)
## The original Algo
# # First we get the "real" position of the mouse cursor and then the offset to the player
# # To do that, we need to divide the mouse position inside the local viewport by the game window scale
# # Then substract half of the game size and add the player position
#
# var mouse_pos = _global.viewport.get_mouse_position() / window_scale - (game_size/2) + player.global_position
# # Using a lerp, the cameras position is moved towards the mouse position
# var cam_pos = lerp( player.global_position, mouse_pos, 0.7)
#
# # Use another lerp to make the movement smooth
# actual_cam_pos = lerp(actual_cam_pos, cam_pos, 5*delta)#
# # Calculate the "subpixel" position of the new camera position
# var cam_subpixel_pos = actual_cam_pos.round() - actual_cam_pos
#
# # Update the Main ViewportContainer's shader uniform
# _global.viewport_container.material.set_shader_param("cam_offset", cam_subpixel_pos )
#
# # Set the camera's position to the new position and round it.
# global_position = actual_cam_pos.round()

View File

@ -1,15 +1,21 @@
[gd_resource type="SpriteFrames" load_steps=5 format=2] [gd_resource type="SpriteFrames" load_steps=6 format=2]
[ext_resource path="res://assets/quick_health.png" type="Texture" id=1]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 1 )
region = Rect2( 0, 0, 15, 13 ) region = Rect2( 0, 0, 15, 13 )
[sub_resource type="AtlasTexture" id=2] [sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 1 )
region = Rect2( 15, 0, 15, 13 ) region = Rect2( 15, 0, 15, 13 )
[sub_resource type="AtlasTexture" id=3] [sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 1 )
region = Rect2( 30, 0, 15, 13 ) region = Rect2( 30, 0, 15, 13 )
[sub_resource type="AtlasTexture" id=4] [sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 1 )
region = Rect2( 45, 0, 15, 13 ) region = Rect2( 45, 0, 15, 13 )
[resource] [resource]

View File

@ -1,17 +0,0 @@
extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
export var starting_level: PackedScene
# 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

View File

@ -14,11 +14,9 @@ func _ready():
global_position = LevelInfo.player_start_position global_position = LevelInfo.player_start_position
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta): #func _process(delta):
PlayerInfo.player_position = global_position.round() # pass
func hit_Receiver(damage): func hit_Receiver(damage):
$Hurtbox_Component.set_hurtbox(false) $Hurtbox_Component.set_hurtbox(false)
$Health_Component.take_damage(damage) $Health_Component.take_damage(damage)

View File

@ -1,66 +0,0 @@
class_name CameraGuide
extends KinematicBody2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
var game_size := Vector2(320,180)
onready var window_scale :float = (OS.window_size / game_size).x
var _is_tracking :bool = true
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
func enable_tracking() -> void:
##TODO: add extra collission checks here to make sure we aren't stuck maybe?
_is_tracking = true
func disable_tracking() -> void:
_is_tracking = false
var flip_tracker = 0.0
var stuck_check: bool
func _physics_process(delta):
var pos = global_position
#pos = pos.move_toward(PlayerInfo.player_position, delta)
#pos = lerp(pos, PlayerInfo.player_position, delta )
var dir_to = Vector2(0,0)
# Calculate how far the player is from object
var diff_to = (PlayerInfo.player_position - pos)
var dist_to = (PlayerInfo.player_position - pos).length()
# Determine the chase direction of player is past the threshold
# Try to prevent bounce
if (is_on_wall() or is_on_floor() or is_on_ceiling()) and abs(diff_to.x) > 10:
dir_to = pos.direction_to(PlayerInfo.player_position)
elif !(is_on_wall() or is_on_floor() or is_on_ceiling()) and abs(diff_to.y) > 10:
dir_to = pos.direction_to(PlayerInfo.player_position)
# UiManager.debug_text = ( UiManager.debug_text +
# # str(PlayerInfo.player_position.snapped(Vector2(0.01,0.01))) +
# "\n" + str(is_on_ceiling()) + str(is_on_floor()) + str(is_on_wall()) +
# "\nPP: {0}, {1}".format({"0":"%7.2f" % PlayerInfo.player_position.x, "1":"%7.2f" % PlayerInfo.player_position.y}) +
# #"\nKB: " + str(global_position.snapped(Vector2(0.01,0.01))) +
# "\nKB: {0}, {1}".format({"0":"%7.2f" % global_position.x, "1":"%7.2f" % global_position.y}) +
# "\nDir to: {0}, {1}".format({"0":"%7.2f" % dir_to.x, "1":"%7.2f" % dir_to.y}) +
# "\nPoint to: {0}, {1}".format({"0":"%7.2f" % diff_to.x, "1":"%7.2f" % diff_to.y})
# #"\nDT: %7.2f" % dist_to
# )
# "Hi, {0} v{version}".format({0:"Godette", "version":"%0.2f" % 3.114})
#"Hi, {0} v{1}".format(["Godette", "3.0"], "{_}")
move_and_slide(dir_to * 180.0 )
# flip_tracker += delta
# if flip_tracker < 10:
# move_and_slide(Vector2(60.2,0))
# elif flip_tracker < 20:
# move_and_slide(Vector2(-60.2,0))
# else:
# flip_tracker = 0.0

View File

@ -1,11 +1,10 @@
[gd_scene load_steps=12 format=2] [gd_scene load_steps=9 format=2]
[ext_resource path="res://src/templates/level_templates/LevelTemplate.tscn" type="PackedScene" id=1] [ext_resource path="res://src/templates/level_templates/LevelTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://assets/levels/LegacyFantasy-High_Forest/tileset.tres" type="TileSet" id=2] [ext_resource path="res://assets/levels/LegacyFantasy-High_Forest/tileset.tres" type="TileSet" id=2]
[ext_resource path="res://lib/components/Hitbox_Component.tscn" type="PackedScene" id=3] [ext_resource path="res://lib/components/Hitbox_Component.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Interactables/LevelTransition.tscn" type="PackedScene" id=4] [ext_resource path="res://src/Interactables/LevelTransition.tscn" type="PackedScene" id=4]
[ext_resource path="res://assets_tmp/Music/summer nights.ogg" type="AudioStream" id=5] [ext_resource path="res://assets_tmp/Music/summer nights.ogg" type="AudioStream" id=5]
[ext_resource path="res://assets/UI/no_cam_tile.png" type="Texture" id=6]
[sub_resource type="CircleShape2D" id=1] [sub_resource type="CircleShape2D" id=1]
radius = 5.09902 radius = 5.09902
@ -16,32 +15,6 @@ extents = Vector2( 4.5, 10 )
[sub_resource type="RectangleShape2D" id=3] [sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 8, 40 ) extents = Vector2( 8, 40 )
[sub_resource type="ConvexPolygonShape2D" id=5]
points = PoolVector2Array( 20, 20, 0.326027, 20, 0.326027, 0.605103, 20, 0.605103 )
[sub_resource type="TileSet" id=4]
0/name = "no_cam_tile.png 0"
0/texture = ExtResource( 6 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 0, 0, 20, 20 )
0/tile_mode = 0
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape = SubResource( 5 )
0/shape_one_way = false
0/shape_one_way_margin = 1.0
0/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 5 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
0/z_index = 0
[node name="TestBox" instance=ExtResource( 1 )] [node name="TestBox" instance=ExtResource( 1 )]
music_track = ExtResource( 5 ) music_track = ExtResource( 5 )
@ -62,15 +35,15 @@ position = Vector2( 80, 131 )
damage_amount = 10 damage_amount = 10
[node name="ColorRect" type="ColorRect" parent="Hitbox_Component" index="0"] [node name="ColorRect" type="ColorRect" parent="Hitbox_Component" index="0"]
margin_left = 266.0 margin_left = 263.0
margin_top = 90.0 margin_top = 115.0
margin_right = 276.0 margin_right = 273.0
margin_bottom = 99.0 margin_bottom = 124.0
color = Color( 1, 0, 0, 1 ) color = Color( 1, 0, 0, 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox_Component" index="1"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox_Component" index="1"]
modulate = Color( 1, 0, 0, 1 ) modulate = Color( 1, 0, 0, 1 )
position = Vector2( 271, 94 ) position = Vector2( 268, 119 )
shape = SubResource( 1 ) shape = SubResource( 1 )
[node name="LevelTransition" parent="." index="5" instance=ExtResource( 4 )] [node name="LevelTransition" parent="." index="5" instance=ExtResource( 4 )]
@ -104,12 +77,3 @@ __meta__ = {
[node name="EnterRight" type="Position2D" parent="." index="7"] [node name="EnterRight" type="Position2D" parent="." index="7"]
position = Vector2( 325, 127 ) position = Vector2( 325, 127 )
[node name="CameraBounds" type="TileMap" parent="." index="8"]
tile_set = SubResource( 4 )
cell_size = Vector2( 20, 20 )
show_collision = true
collision_layer = 256
collision_mask = 0
format = 1
tile_data = PoolIntArray( -65536, 0, 0, -65521, 0, 0, 65535, 0, 0, 524287, 0, 0, 589824, 0, 0, 589838, 0, 0 )