Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | mehmet432 |
First of all… i’m not very experienced and my code will probably look like spaghetti, so don’t expect me to be very intelligent and understand everything in an instant.
This is the singleton i have to use because i’m loading decks from the main menu,
“VariableDatabase.gd”
var dir = Directory.new()
var files = dir.list_dir_begin()
var CardsPath = "res://cards/"
var DecksList = Array()
var DecksOnPlay = Array()
var CardsOnPlay = Array()
var CardCount = 30
then i have this setup and it works but the only thing i can’t wrap my head around is how the hell do i assign every TextureButton to its unique object.
var CardSprite = TextureButton.new()
var CardSpriteCount = 0
var CardsOnPlayArea = Array()
var CardsOnDiscardPile = Array()
var OnPlayAreaPosition = Vector2(480, 50)
var DiscardPilePosition = Vector2(900, 50)
func _on_DeckButton_pressed():
CardSpriteCount += 1
var random_card = VariableDatabase.CardsOnPlay[randi() % VariableDatabase.CardsOnPlay.size()]
if VariableDatabase.CardsOnPlay.size() > 0:
VariableDatabase.CardsOnPlay.erase(random_card)
$CardsOnPlayNode.add_child(CardSprite)
CardSprite.set_position(OnPlayAreaPosition)
CardSprite.texture_normal = load(random_card)
CardSprite.texture_focused = load(random_card)
CardSprite.texture_pressed = load(random_card)
CardSprite.name = (str(CardSpriteCount, "_") + random_card.get_slice("/", 4))
CardSprite.connect("pressed", self, "_on_pressed", [CardSprite])
print(CardSprite.name)
else:
pass
func _on_pressed(CardSprite):
print("You clicked me!")
var CardSpritePosition = CardSprite.get_position()
if CardSpritePosition == OnPlayAreaPosition:
CardSprite.set_position(DiscardPilePosition)
elif CardSpritePosition == DiscardPilePosition:
CardSprite.set_position(OnPlayAreaPosition)
else:
pass
What i mean is that, i draw 1 card from deck and place it on “OnPlayAreaPosition” and if i click it while its on that position then it gets transferred to “DiscardPilePosition”
But here’s the thing, if i draw another one and press any of them then they become one and all but one disappears, i know why it happens, i just can’t comprehend how to find a workaround for it.
i need to find a way to call “CardSprite” uniquely associated with every generated TextureButton.