Discuss Scratch

Theonedeman
Scratcher
8 posts

Sprites seguir clones diferentes

Bom, sei que podemos diferenciar clones criando uma variável contadora e atribuindo à eles a cada criação, porém, como faço para um Sprite seguir certo clone? Por exemplo, um tiro seguir o terceiro clone gerado.
Obrigado se ajudarem!
Fupicat
Scratcher
1000+ posts

Sprites seguir clones diferentes

Usar propriedades de clones específicos é impossível, mas dá pra fazer isso de outro jeito. Se você sabe exatamente qual clone o tiro deve seguir, podemos usar variáveis ou listas para guardar as coordenadas do clone e usar um ator de alvo para ir até essas coordenadas e detectar colisão com o tiro.

Fiz um projeto de exemplo que faz com que o primeiro tiro siga o primeiro clone, o segundo tiro siga o segundo clone, etc: https://scratch.mit.edu/projects/414031521/



Theonedeman
Scratcher
8 posts

Sprites seguir clones diferentes

Fupicat wrote:

Usar propriedades de clones específicos é impossível, mas dá pra fazer isso de outro jeito. Se você sabe exatamente qual clone o tiro deve seguir, podemos usar variáveis ou listas para guardar as coordenadas do clone e usar um ator de alvo para ir até essas coordenadas e detectar colisão com o tiro.

Fiz um projeto de exemplo que faz com que o primeiro tiro siga o primeiro clone, o segundo tiro siga o segundo clone, etc: https://scratch.mit.edu/projects/414031521/
Ótimo! Parabéns pelo projeto, realmente ajuda.
Meu problema era fazer um sprite olhar para o clone, então fiz o clone olhar para o sprite e armazenar a direção em alguma variável, assim poderia fazer o sprite sempre olhar para a direção que o clone estivesse olhando + (ou -) 180, assim, olharia para o oposto, consequentemente, olhando para o sprite.
Mas obrigado pela ajuda!
Fupicat
Scratcher
1000+ posts

Sprites seguir clones diferentes

Theonedeman wrote:

Ótimo! Parabéns pelo projeto, realmente ajuda.
Meu problema era fazer um sprite olhar para o clone, então fiz o clone olhar para o sprite e armazenar a direção em alguma variável, assim poderia fazer o sprite sempre olhar para a direção que o clone estivesse olhando + (ou -) 180, assim, olharia para o oposto, consequentemente, olhando para o sprite.
Mas obrigado pela ajuda!
Boa solução! Provavelmente melhor que a minha kkkkk

Last edited by Fupicat (July 27, 2020 03:33:21)




Theonedeman
Scratcher
8 posts

Sprites seguir clones diferentes

Pode me explicar, no seu projeto, ao substituir o item “clone#” de alvox por posição x, por que substitui todos os itens dentro de alvox e não apenas o item 5, já que “clone#” vale 5?
Outra coisa, por que a variável mostrada no jogo se chama “Clones: clone#” sendo que o nome dela é apenas “clone#”? Como e de onde surgiu a palavra “Clones”?

Print: https://imgur.com/xMrm2iz

Obrigado.

Edit: Esqueça, já entendi. Porque é apenas do ator “Clones”, mas me explica, qual a lógica? Por que consegue pegar todos os números e não apenas o 5 quando a variável é apenas do ator?

Last edited by Theonedeman (July 28, 2020 03:53:57)

Fupicat
Scratcher
1000+ posts

Sprites seguir clones diferentes

Theonedeman wrote:

Pode me explicar, no seu projeto, ao substituir o item “clone#” de alvox por posição x, por que substitui todos os itens dentro de alvox e não apenas o item 5, já que “clone#” vale 5?
Outra coisa, por que a variável mostrada no jogo se chama “Clones: clone#” sendo que o nome dela é apenas “clone#”? Como e de onde surgiu a palavra “Clones”?

Print: https://imgur.com/xMrm2iz

Obrigado.

Edit: Esqueça, já entendi. Porque é apenas do ator “Clones”, mas me explica, qual a lógica? Por que consegue pegar todos os números e não apenas o 5 quando a variável é apenas do ator?
Quando um variável é de apenas um ator, cada clone desse ator tem um clone dessa variável. O valor inicial da variável de tal clone é igual ao valor que aquele variável tinha antes do ator ser criado. Por exemplo:

quando a bandeira for pressionada :: hat events
mude [clone# v] para [0] :: variables
repita (5) vezes {
adicione (1) a [clone# v] :: variables
crie clone de [mim mesmo v] :: control
} :: control

quando eu começar como um clone :: hat control
sempre {
diga (clone#) :: looks
}@loopArrow :: control cap

Nesse exemplo, o clone sempre dirá o valor que o variável “clone#” tinha no momento em que ele for criado. O primeiro clone dirá 1, o segundo dirá 2, etc. Se o variável for mudado por um clone específico, mas não pelos outros, ele será mudado apenas para o clone que o mudou.



Theonedeman
Scratcher
8 posts

Sprites seguir clones diferentes

Fupicat wrote:

Theonedeman wrote:

Pode me explicar, no seu projeto, ao substituir o item “clone#” de alvox por posição x, por que substitui todos os itens dentro de alvox e não apenas o item 5, já que “clone#” vale 5?
Outra coisa, por que a variável mostrada no jogo se chama “Clones: clone#” sendo que o nome dela é apenas “clone#”? Como e de onde surgiu a palavra “Clones”?

Print: https://imgur.com/xMrm2iz

Obrigado.

Edit: Esqueça, já entendi. Porque é apenas do ator “Clones”, mas me explica, qual a lógica? Por que consegue pegar todos os números e não apenas o 5 quando a variável é apenas do ator?
Quando um variável é de apenas um ator, cada clone desse ator tem um clone dessa variável. O valor inicial da variável de tal clone é igual ao valor que aquele variável tinha antes do ator ser criado. Por exemplo:

quando a bandeira for pressionada :: hat events
mude [clone# v] para [0] :: variables
repita (5) vezes {
adicione (1) a [clone# v] :: variables
crie clone de [mim mesmo v] :: control
} :: control

quando eu começar como um clone :: hat control
sempre {
diga (clone#) :: looks
}@loopArrow :: control cap

Nesse exemplo, o clone sempre dirá o valor que o variável “clone#” tinha no momento em que ele for criado. O primeiro clone dirá 1, o segundo dirá 2, etc. Se o variável for mudado por um clone específico, mas não pelos outros, ele será mudado apenas para o clone que o mudou.

Entendi, obrigado!
Mas estou tentando fazer uma coisa e não está funcionando, sempre pega o valor atual da variável:
https://imgur.com/LE72lZL
(Meus blocos no fórum estão todos em outra língua e não sei altera-los, por isso usei a imagem. Como altero a linguagem deles?)

Last edited by Theonedeman (July 28, 2020 16:15:11)

Fupicat
Scratcher
1000+ posts

Sprites seguir clones diferentes

Theonedeman wrote:

Mas estou tentando fazer uma coisa e não está funcionando, sempre pega o valor atual da variável:
https://imgur.com/LE72lZL
Pode postar o link do projeto que está tendo problema?

Theonedeman wrote:

(Meus blocos no fórum estão todos em outra língua e não sei altera-los, por isso usei a imagem. Como altero a linguagem deles?)
Os blocos no fórum Português estão bugados há anos, e os fóruns do Scratch não estão mais sendo atualizados. Já reportei esse bug várias vezes ao Scratch mas infelizmente eles não podem mais fazer nada no fórum. Ainda dá pra usar blocos em português no fórum se você escrever eles manualmente, veja esse tópico para entender: https://scratch.mit.edu/discuss/topic/422812/



theosplay22
Scratcher
3 posts

Sprites seguir clones diferentes

como fazer o clone do scratch ir pra outro clone?

Powered by DjangoBB