mirror of
https://github.com/HarmonyHoney/ROTA.git
synced 2026-07-17 16:46:17 +00:00
beep boop (: player sprite
This commit is contained in:
parent
f95ac6af54
commit
79e1eabe00
5 changed files with 29 additions and 18 deletions
BIN
media/image/player.png
Normal file
BIN
media/image/player.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9 KiB |
|
|
@ -28,7 +28,7 @@ _global_script_class_icons={
|
|||
|
||||
config/name="gdRota"
|
||||
run/main_scene="res://src/map/0.tscn"
|
||||
config/icon="res://icon.png"
|
||||
config/icon="res://media/image/gobot.png"
|
||||
|
||||
[autoload]
|
||||
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@ extends KinematicBody2D
|
|||
class_name Player
|
||||
|
||||
onready var sprite : Sprite = $Sprite
|
||||
onready var face : Sprite = $Sprite/Face
|
||||
onready var hit_area : Area2D = $HitArea
|
||||
onready var push_area : Area2D = $PushArea
|
||||
onready var audio_slap : AudioStreamPlayer2D = $AudioSlap
|
||||
onready var audio_punch : AudioStreamPlayer2D = $AudioPunch
|
||||
|
||||
var camera : Camera2D
|
||||
|
||||
export var dir := 0 setget set_dir
|
||||
|
||||
var velocity := Vector2.ZERO
|
||||
|
|
@ -27,12 +28,14 @@ var dir_x := 1
|
|||
onready var label : Label = $DebugCanvas/Labels/Label
|
||||
var readout = []
|
||||
|
||||
var camera : Camera2D
|
||||
export var sprite_weight := 3.0
|
||||
var target_angle := 0.0
|
||||
|
||||
func _ready():
|
||||
if Engine.editor_hint: return
|
||||
|
||||
readout.resize(4)
|
||||
label.visible = true
|
||||
|
||||
for i in get_tree().get_nodes_in_group("game_camera"):
|
||||
camera = i
|
||||
|
|
@ -42,16 +45,18 @@ func _ready():
|
|||
set_dir()
|
||||
camera.rotation_degrees = camera.target_angle
|
||||
break
|
||||
|
||||
|
||||
func rot(arg : Vector2, backwards := false):
|
||||
return arg.rotated(deg2rad((-dir if backwards else dir) * 90))
|
||||
|
||||
func set_dir(arg := dir):
|
||||
dir = 3 if arg < 0 else (arg % 4)
|
||||
|
||||
target_angle = dir * 90
|
||||
|
||||
if Engine.editor_hint:
|
||||
if !face: face = $Sprite/Face
|
||||
face.rotation_degrees = dir * 90
|
||||
if !sprite: sprite = $Sprite/Face
|
||||
sprite.rotation_degrees = dir * 90
|
||||
elif camera:
|
||||
camera.target_angle = dir * 90
|
||||
|
||||
|
|
@ -61,7 +66,8 @@ func spin(right := false):
|
|||
set_dir(dir + (1 if right else 3))
|
||||
|
||||
func set_rotation(degrees):
|
||||
face.rotation_degrees = degrees
|
||||
pass
|
||||
#face.rotation_degrees = degrees
|
||||
|
||||
func hit_effector(pos : Vector2):
|
||||
move_and_collide(pos - position)
|
||||
|
|
@ -112,6 +118,7 @@ func _physics_process(delta):
|
|||
if joy.x != 0:
|
||||
dir_x = joy.x
|
||||
update_areas()
|
||||
sprite.flip_h = joy.x < 0
|
||||
|
||||
# on floor
|
||||
is_floor = test_move(transform, rot(Vector2.DOWN))
|
||||
|
|
@ -167,6 +174,9 @@ func _physics_process(delta):
|
|||
# camera
|
||||
camera.position = position
|
||||
|
||||
# sprite
|
||||
sprite.rotation = lerp_angle(sprite.rotation, deg2rad(target_angle), delta * sprite_weight)
|
||||
|
||||
# debug label
|
||||
readout[0] = "dir: " + str(dir)
|
||||
readout[1] = "is_floor: " + str(is_floor)
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
[gd_scene load_steps=10 format=2]
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://media/image/gobot.png" type="Texture" id=1]
|
||||
[ext_resource path="res://src/actor/Player.gd" type="Script" id=2]
|
||||
[ext_resource path="res://media/audio/sfx/slap0.wav" type="AudioStream" id=3]
|
||||
[ext_resource path="res://media/audio/sfx/player_punch0.wav" type="AudioStream" id=4]
|
||||
[ext_resource path="res://media/image/rect.png" type="Texture" id=5]
|
||||
[ext_resource path="res://media/image/player.png" type="Texture" id=6]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 40, 40 )
|
||||
extents = Vector2( 30, 30 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
extents = Vector2( 40, 40 )
|
||||
|
|
@ -25,6 +24,7 @@ z_index = 10
|
|||
z_as_relative = false
|
||||
collision_layer = 3
|
||||
script = ExtResource( 2 )
|
||||
sprite_weight = 6.0
|
||||
|
||||
[node name="DebugCanvas" type="CanvasLayer" parent="."]
|
||||
|
||||
|
|
@ -39,6 +39,7 @@ __meta__ = {
|
|||
}
|
||||
|
||||
[node name="Label" type="Label" parent="DebugCanvas/Labels"]
|
||||
visible = false
|
||||
margin_right = 21.0
|
||||
margin_bottom = 14.0
|
||||
custom_colors/font_color = Color( 0, 0, 0, 1 )
|
||||
|
|
@ -48,16 +49,14 @@ __meta__ = {
|
|||
}
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
scale = Vector2( 0.199744, 0.199744 )
|
||||
texture = ExtResource( 5 )
|
||||
|
||||
[node name="Face" type="Sprite" parent="Sprite"]
|
||||
texture = ExtResource( 1 )
|
||||
scale = Vector2( 0.25, 0.25 )
|
||||
texture = ExtResource( 6 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="BodyArea" type="Area2D" parent="."]
|
||||
visible = false
|
||||
collision_layer = 3
|
||||
collision_mask = 8
|
||||
|
||||
|
|
@ -65,6 +64,7 @@ collision_mask = 8
|
|||
shape = SubResource( 2 )
|
||||
|
||||
[node name="HitArea" type="Area2D" parent="."]
|
||||
visible = false
|
||||
position = Vector2( 50, 0 )
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
|
@ -84,6 +84,7 @@ __meta__ = {
|
|||
}
|
||||
|
||||
[node name="PushArea" type="Area2D" parent="."]
|
||||
visible = false
|
||||
position = Vector2( 40, 0 )
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue