You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GDScript中实现点击按钮循环切换精灵纹理数组

解决GDScript图片循环切换问题

你现在的代码每次点击按钮都固定设置为数组第一个元素(索引0),没有追踪当前显示的图片位置,所以无法实现依次切换的效果。要实现循环切换,只需要添加一个变量记录当前索引,每次点击更新索引并处理循环逻辑即可。

修改步骤:

  • 添加一个current_index变量,初始值设为0,用来记录当前显示的图片在数组中的位置。
  • 在按钮点击函数中,先将索引递增,再通过取模运算处理循环(当索引超过数组长度时,自动回到0),最后更新精灵纹理。

修改后的完整代码:

extends Node

onready var my_sprite = get_node("/root/Game/Picture/Sprite")
var new_texture = [
    load("res://Art/Picture1.png"),
    load("res://Art/Picture2.png"),
    load("res://Art/Picture3.png"),
    load("res://Art/Picture4.png"),
    load("res://Art/Picture5.png"),
    load("res://Art/Picture6.png")
]
# 新增变量:记录当前显示的图片索引
var current_index = 0

func _on_Arrow_pressed() -> void:
    # 索引递增,取模运算实现循环
    current_index = (current_index + 1) % new_texture.size()
    # 设置新纹理
    my_sprite.texture = new_texture[current_index]

补充说明:

  • new_texture.size()会返回数组的元素数量(这里是6),(current_index + 1) % 6可以保证索引始终在0到5之间循环,不会超出数组范围。
  • 如果希望初始显示第一张图,初始化current_index = 0即可;如果点击第一次就切换到第二张,也可以把递增逻辑放在设置纹理之后,或者初始值设为-1,根据需求调整。

内容的提问来源于stack exchange,提问作者Hidden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:10:43