diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2023-06-24 18:02:46 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2023-06-24 23:46:57 -0400 |
| commit | dbb42c99e07320bc20d77cdbe404a8071c0a522e (patch) | |
| tree | 9e3d4094061c800e52897bfaa117a3608c648f2a /game/characters | |
| parent | 9541a472e0b38369d169ad3f7bb250a8127bc471 (diff) | |
| download | frivolous-run-dbb42c99e07320bc20d77cdbe404a8071c0a522e.tar.gz frivolous-run-dbb42c99e07320bc20d77cdbe404a8071c0a522e.tar.bz2 frivolous-run-dbb42c99e07320bc20d77cdbe404a8071c0a522e.zip | |
Ported game to Godot 4; Major changes
Diffstat (limited to 'game/characters')
| -rw-r--r-- | game/characters/player/Player.gd | 60 | ||||
| -rw-r--r-- | game/characters/player/Player.tscn | 59 | ||||
| -rw-r--r-- | game/characters/victor/Victor.gd | 21 | ||||
| -rw-r--r-- | game/characters/victor/Victor.tscn | 29 |
4 files changed, 105 insertions, 64 deletions
diff --git a/game/characters/player/Player.gd b/game/characters/player/Player.gd index 40d4148..862a0a1 100644 --- a/game/characters/player/Player.gd +++ b/game/characters/player/Player.gd @@ -1,36 +1,28 @@ -extends KinematicBody2D - -const UP = Vector2(0,-1) -export var GRAVITY = 20 -export var MAXFALLSPEED = 200 -export var MAXSPEED = 80 -export var JUMPFORCE = 300 -export var ACCEL = 20 - -var motion = Vector2() - - -func _physics_process(_delta): - - motion.y += GRAVITY - - if motion.y > MAXFALLSPEED: - motion.y = MAXFALLSPEED - - motion.x = clamp(motion.x,-MAXSPEED,MAXSPEED) - - if Input.is_action_pressed("left"): - motion.x -= ACCEL - - elif Input.is_action_pressed("right"): - motion.x += ACCEL +extends CharacterBody2D + + +@export var SPEED = 300.0 +var 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("jump") 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("left", "right") + if direction: + velocity.x = direction * SPEED else: - motion.x = lerp(motion.x,0,0.2) - - if is_on_floor(): - if Input.is_action_just_pressed("jump"): - motion.y = -JUMPFORCE - - - motion = move_and_slide(motion,UP) + velocity.x = move_toward(velocity.x, 0, SPEED) + move_and_slide() diff --git a/game/characters/player/Player.tscn b/game/characters/player/Player.tscn index 3a3bba7..f1d831e 100644 --- a/game/characters/player/Player.tscn +++ b/game/characters/player/Player.tscn @@ -1,25 +1,50 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://l0lnby3rm6fj"] -[ext_resource path="res://game/characters/player/Player.gd" type="Script" id=1] -[ext_resource path="res://assets/images/white.png" type="Texture" id=2] +[ext_resource type="Texture2D" uid="uid://d1gf8ked7ik4l" path="res://assets/images/white.png" id="2"] -[sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 8, 8 ) +[sub_resource type="GDScript" id="GDScript_mix1s"] +script/source = "extends CharacterBody2D -[node name="Player" type="KinematicBody2D"] -position = Vector2( 50, 600 ) -script = ExtResource( 1 ) -MAXSPEED = 200 -JUMPFORCE = 500 -ACCEL = 100 +const JUMP_VELOCITY = -500.0 -[node name="Sprite" type="Sprite" parent="."] -texture = ExtResource( 2 ) +# 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. + velocity.x = 1 * Stats.initspeed + move_and_slide() + + if Stats.playerdead == true: + queue_free() +" + +[sub_resource type="RectangleShape2D" id="1"] +size = Vector2(16, 16) + +[node name="Player" type="CharacterBody2D"] +position = Vector2(50, 600) +script = SubResource("GDScript_mix1s") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource( 1 ) +shape = SubResource("1") [node name="Camera2D" type="Camera2D" parent="."] -current = true -zoom = Vector2( 0.5, 0.5 ) -smoothing_enabled = true +zoom = Vector2(1.5, 1.5) +limit_left = 0 +limit_top = 0 +position_smoothing_enabled = true +position_smoothing_speed = 6.0 diff --git a/game/characters/victor/Victor.gd b/game/characters/victor/Victor.gd index 7d8259f..725babe 100644 --- a/game/characters/victor/Victor.gd +++ b/game/characters/victor/Victor.gd @@ -1,7 +1,18 @@ -extends KinematicBody2D +extends CharacterBody2D -var speed = 100 -var velocity = Vector2(0, 0) +var SPEED = 100 +var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") +var player -func _physics_process(_delta): - pass +func _physics_process(delta): + velocity.y += gravity * delta + player = get_node("../Player") + var direction = (player.position - self.position).normalized() + velocity.x = direction.x * SPEED + move_and_slide() + + +func _on_player_collision_body_entered(body): + if body.name == "Player": + print("Killed player") + Stats.playerdead == true diff --git a/game/characters/victor/Victor.tscn b/game/characters/victor/Victor.tscn index 1cd8f7a..ecfe876 100644 --- a/game/characters/victor/Victor.tscn +++ b/game/characters/victor/Victor.tscn @@ -1,14 +1,27 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=5 format=3 uid="uid://dfomf55bood4b"] -[ext_resource path="res://assets/images/blue.png" type="Texture" id=1] +[ext_resource type="Texture2D" uid="uid://cb2ak3trl37at" path="res://assets/images/blue.png" id="1"] +[ext_resource type="Script" path="res://game/characters/victor/Victor.gd" id="1_gw1mn"] -[sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 8, 8 ) +[sub_resource type="RectangleShape2D" id="1"] +size = Vector2(16, 16) -[node name="Victor" type="KinematicBody2D"] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_sxbpr"] +size = Vector2(18, 17) -[node name="Sprite" type="Sprite" parent="."] -texture = ExtResource( 1 ) +[node name="Victor" type="CharacterBody2D"] +script = ExtResource("1_gw1mn") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource( 1 ) +shape = SubResource("1") + +[node name="PlayerCollision" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerCollision"] +position = Vector2(0, -0.5) +shape = SubResource("RectangleShape2D_sxbpr") + +[connection signal="body_entered" from="PlayerCollision" to="." method="_on_player_collision_body_entered"] |
