Skip to content

Instantly share code, notes, and snippets.

@RobinMoretti
Created June 23, 2025 12:03
Show Gist options
  • Save RobinMoretti/6a8fbd848541a3d01ea3e51bbb5661f1 to your computer and use it in GitHub Desktop.
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.
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