Created
June 23, 2025 12:03
-
-
Save RobinMoretti/6a8fbd848541a3d01ea3e51bbb5661f1 to your computer and use it in GitHub Desktop.
Ce script surveille les touches du clavier pressées pendant la dernière seconde et identifie celle qui a été pressée le plus souvent.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var key_press_counts = {} | |
var key_press_times = {} | |
func _ready() -> void: | |
# Initialiser le dictionnaire avec les touches que tu veux surveiller | |
init_key_tracking() | |
func init_key_tracking(): | |
var keys_to_track = [ | |
KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, | |
KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, | |
KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, | |
KEY_SPACE, KEY_ENTER, KEY_ESCAPE, | |
KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT | |
] | |
for key in keys_to_track: | |
key_press_counts[key] = 0 | |
key_press_times[key] = [] | |
func _input(event): | |
if event is InputEventKey and event.pressed: | |
var key_code = event.keycode | |
if key_code in key_press_counts: | |
var timestamp = Time.get_unix_time_from_system() | |
key_press_times[key_code].append(timestamp) | |
clean_old_timestamps(key_code, timestamp) | |
key_press_counts[key_code] = key_press_times[key_code].size() | |
print_most_pressed_key() | |
func clean_old_timestamps(key_code: int, current_timestamp: float): | |
var cleaned_times = [] | |
for timestamp in key_press_times[key_code]: | |
if current_timestamp - timestamp <= 1.0: | |
cleaned_times.append(timestamp) | |
key_press_times[key_code] = cleaned_times | |
func print_most_pressed_key(): | |
var max_count = 0 | |
var most_pressed_key = null | |
for key_code in key_press_counts: | |
if key_press_counts[key_code] > max_count: | |
max_count = key_press_counts[key_code] | |
most_pressed_key = key_code | |
if most_pressed_key != null and max_count > 0: | |
var key_name = OS.get_keycode_string(most_pressed_key) | |
print("Touche la plus pressée: ", key_name, " (", max_count, " fois)") | |
else: | |
print("Aucune touche pressée récemment") | |
# Fonction pour obtenir la touche la plus pressée (à utiliser dans ton code) | |
func get_most_pressed_key(): | |
var max_count = 0 | |
var most_pressed_key = null | |
for key_code in key_press_counts: | |
if key_press_counts[key_code] > max_count: | |
max_count = key_press_counts[key_code] | |
most_pressed_key = key_code | |
if most_pressed_key != null: | |
return { | |
"key_code": most_pressed_key, | |
"key_name": OS.get_keycode_string(most_pressed_key), | |
"count": max_count | |
} | |
return null |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment