diff --git a/scene/little_game/书架/书架.gd b/scene/little_game/书架/书架.gd index 88b94569..d7b5db9f 100644 --- a/scene/little_game/书架/书架.gd +++ b/scene/little_game/书架/书架.gd @@ -65,7 +65,11 @@ func _init_answer_and_connect_signals() -> void: arr.append(id) var book = _get_book_by_id(row, id) if not Engine.is_editor_hint(): - book.get_node("BookButton").pressed.connect(_on_book_pressed.bind(row, id)) + var btn = book.get_node("BookButton") as TextureButton + btn.pressed.connect(_on_book_pressed.bind(row, id)) + btn.mouse_entered.connect(_on_book_hover.bind(true, row, btn)) + btn.mouse_exited.connect(_on_book_hover.bind(false, row, btn)) + btn.self_modulate = Color.GRAY current_answer.append(arr) @@ -131,6 +135,15 @@ func _on_book_pressed(row: int, id: int) -> void: selected_book = [row, col] +func _on_book_hover(hover: bool, row: int, btn: TextureButton) -> void: + if gameover or row_correct_status[row]: + return + if hover: + btn.self_modulate = Color.WHITE + else: + btn.self_modulate = Color.GRAY + + func _get_book_by_id(row: int, id: int) -> Node2D: return get_node("./Shelf/Layer" + str(row) + "/Book" + str(id)) @@ -199,6 +212,11 @@ func _check_answer() -> void: if row_success: row_correct_status[0] = true $SfxRowSuccess.play() + # set modulate back to white + for col in range(row1.size()): + var book = _get_book_by_id(0, col) + var btn = book.get_node("BookButton") as TextureButton + btn.self_modulate = Color.WHITE # 第二行需要正序排列 if not row_correct_status[1]: @@ -212,6 +230,12 @@ func _check_answer() -> void: if row_success: row_correct_status[1] = true $SfxRowSuccess.play() + # set modulate back to white + for col in range(row2.size()): + var book = _get_book_by_id(1, col) + var btn = book.get_node("BookButton") as TextureButton + btn.self_modulate = Color.WHITE + # 第三行正序或者倒序都可以 if not row_correct_status[2]: var row_success = true @@ -232,6 +256,11 @@ func _check_answer() -> void: if row_success: row_correct_status[2] = true $SfxRowSuccess.play() + # set modulate back to white + for col in range(_row3.size()): + var book = _get_book_by_id(2, col) + var btn = book.get_node("BookButton") as TextureButton + btn.self_modulate = Color.WHITE # 检查是否成功 if row_correct_status[0] and row_correct_status[1] and row_correct_status[2]: _success()