add playerlist sprite animation
This commit is contained in:
parent
bc2aa0ba2c
commit
c3d9e08ae9
4 changed files with 68 additions and 11 deletions
30
README.md
30
README.md
|
@ -51,12 +51,40 @@ Example:
|
|||
7="WHITE"
|
||||
'''
|
||||
|
||||
## Fullscreen
|
||||
|
||||
|
||||
## Video
|
||||
|
||||
**fullscreen**
|
||||
|
||||
Represents last state of in menu button "Fullscreen"
|
||||
|
||||
**playerlist_sprite**
|
||||
|
||||
Show sprites in menu playerlist. true or false.
|
||||
|
||||
**playerlist_key**
|
||||
|
||||
Show input key in menu playerlist. true or false.
|
||||
|
||||
**animate_sprite_on_press**
|
||||
|
||||
Animate sprite on key press in menu playerlist.
|
||||
Only effective when playerlist_sprite is set to true.
|
||||
true or false.
|
||||
|
||||
**animate_outline_on_press**
|
||||
|
||||
Animate input key on key press in menu playerlist.
|
||||
Only effective when playerlist_key is set to true.
|
||||
true or false.
|
||||
|
||||
## General
|
||||
|
||||
**rounds**
|
||||
|
||||
Last selected rounds.
|
||||
|
||||
### Remove cars timeout
|
||||
**remove_cars_timeout**
|
||||
|
||||
|
|
|
@ -470,10 +470,10 @@ anchor_left = 0.5
|
|||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -483.861
|
||||
offset_top = -287.132
|
||||
offset_right = -148.861
|
||||
offset_bottom = -173.132
|
||||
offset_left = -576.0
|
||||
offset_top = -289.0
|
||||
offset_right = -241.0
|
||||
offset_bottom = -175.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = SubResource("Theme_lsv84")
|
||||
|
|
|
@ -9,9 +9,13 @@ func _ready() -> void:
|
|||
config.set_value("keywhitelist", "enabled", false)
|
||||
|
||||
config.set_value("video", "fullscreen", false)
|
||||
config.set_value("video", "playerlist_sprite", true)
|
||||
config.set_value("video", "playerlist_key", true)
|
||||
config.set_value("video", "animate_sprite_on_press", false)
|
||||
config.set_value("video", "animate_outline_on_press", true)
|
||||
|
||||
config.set_value("general", "remove_cars_timeout", 15)
|
||||
config.set_value("general", "automatic_map_change_after", 2)
|
||||
config.set_value("general", "automatic_map_change_after", 0)
|
||||
config.set_value("general", "fast_mode_chance", 0.0)
|
||||
config.set_value("general", "rounds", 3)
|
||||
|
||||
|
|
|
@ -2,11 +2,23 @@ extends Node2D
|
|||
|
||||
const ADD_STEP_OUTLINESIZE=30
|
||||
const MAX_OUTLINESIZE=60
|
||||
var animate_outline_on_press=true
|
||||
const ADD_STEP_SPRITE_SCALE=0.2
|
||||
const MAX_SPRITE_SCALE=1.5
|
||||
var animate_sprite_on_press=true
|
||||
|
||||
@onready var playerlist_particles_2d: CPUParticles2D = $MarginContainer/PlayerlistParticles2D
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass
|
||||
if ConfigFileHandler.get_video_setting("playerlist_sprite")==false:
|
||||
$MarginContainer/VBoxContainer_Spritelist.visible=false
|
||||
if ConfigFileHandler.get_video_setting("playerlist_key")==false:
|
||||
$MarginContainer/VBoxContainer_Playerlist.visible=false
|
||||
|
||||
|
||||
animate_outline_on_press=ConfigFileHandler.get_video_setting("animate_outline_on_press")
|
||||
animate_sprite_on_press=ConfigFileHandler.get_video_setting("animate_sprite_on_press")
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
|
@ -31,11 +43,19 @@ func update_playerlist(players:Array[Gamestate.Player],flashplayer_keycode=-1,ef
|
|||
PlayerSprite.visible=true
|
||||
if (p.inputkey==flashplayer_keycode): #this player should show an animation
|
||||
if effect=="blink":
|
||||
var outlinesize=min(max(0,label.get_theme_constant("outline_size")+ADD_STEP_OUTLINESIZE),MAX_OUTLINESIZE) #enlarge outline a bit
|
||||
label.add_theme_constant_override("outline_size",outlinesize)
|
||||
if animate_outline_on_press:
|
||||
var outlinesize=min(max(0,label.get_theme_constant("outline_size")+ADD_STEP_OUTLINESIZE),MAX_OUTLINESIZE) #enlarge outline a bit
|
||||
label.add_theme_constant_override("outline_size",outlinesize)
|
||||
if animate_sprite_on_press:
|
||||
var spritescale=min(max(1.0,PlayerSprite.scale.x+ADD_STEP_SPRITE_SCALE),MAX_SPRITE_SCALE) #enlarge outline a bit
|
||||
PlayerSprite.scale=Vector2(spritescale,spritescale)
|
||||
if effect=="explode":
|
||||
var outlinesize=MAX_OUTLINESIZE
|
||||
label.add_theme_constant_override("outline_size",outlinesize) #make outline max size
|
||||
if animate_outline_on_press:
|
||||
var outlinesize=MAX_OUTLINESIZE
|
||||
label.add_theme_constant_override("outline_size",outlinesize) #make outline max size
|
||||
if animate_sprite_on_press:
|
||||
var spritescale=min(max(1.0,PlayerSprite.scale.x+ADD_STEP_SPRITE_SCALE),MAX_SPRITE_SCALE) #enlarge outline a bit
|
||||
PlayerSprite.scale=Vector2(spritescale,spritescale)
|
||||
|
||||
var font_size=label.get_theme_font_size("font_size")
|
||||
var new_playerlist_particles_2d=playerlist_particles_2d.duplicate()
|
||||
|
@ -56,9 +76,14 @@ func update_playerlist(players:Array[Gamestate.Player],flashplayer_keycode=-1,ef
|
|||
|
||||
func _process(delta: float) -> void:
|
||||
var Playerlabels=$MarginContainer/VBoxContainer_Playerlist.get_children()
|
||||
var i=0
|
||||
for label in Playerlabels:
|
||||
var PlayerSprite=$MarginContainer/VBoxContainer_Spritelist.get_child(i) #get corresponding car sprite
|
||||
var outlinesize=max(0,label.get_theme_constant("outline_size")-2*delta)
|
||||
label.add_theme_constant_override("outline_size",outlinesize)
|
||||
var spritescale=min(max(1.0,PlayerSprite.scale.x-1*delta),MAX_SPRITE_SCALE) #enlarge outline a bit
|
||||
PlayerSprite.scale=Vector2(spritescale,spritescale)
|
||||
i+=1
|
||||
|
||||
|
||||
if Gamestate.automatic_map_change_in>0:
|
||||
|
|
Loading…
Add table
Reference in a new issue