Skip to content

Instantly share code, notes, and snippets.

@pedrorocha-net
Last active January 8, 2021 14:25
Show Gist options
  • Save pedrorocha-net/07a04771e472063302c0cda53b8fbb80 to your computer and use it in GitHub Desktop.
Save pedrorocha-net/07a04771e472063302c0cda53b8fbb80 to your computer and use it in GitHub Desktop.
Spark AR script that uses Persistence module to save the number of taps a user does on screen
const Scene = require('Scene');
const Persistence = require('Persistence');
const Diagnostics = require('Diagnostics');
const Patches = require('Patches');
// Esperamos por todos os itens que iremos usar do SparkAR ficarem disponíveis
Promise.all([
Patches.outputs.getPulse('wasTapped'),
Scene.root.findFirst('2dText0'),
]).then(results => {
// Criamos variáveis com nomes mais interessantes de usar, após os itens ficarem prontos
let tapPulse = results[0];
let textElement = results[1];
// Iniciamos nossos dados
let data = { counter: 0 };
// Iniciamos o texto com 0, enquanto buscamos os dados do Persistence
textElement.text = data.counter.toString();
// Nos inscrevemos para "ouvir" os taps e executar nossa lógica quando estiver "On"
tapPulse.subscribe(() => {
// Incrementamos o counter
data.counter++;
// Atualizamos o texto com o counter
textElement.text = data.counter.toString();
// Salvamos o novo valor do counter
Persistence.userScope.set('data', data);
});
Persistence.userScope.get('data').then(result => {
/*
* Quando alguém inicia o efeito pela primeira vez, os dados vem vazios, então somente podemos
* alterar a variavel data caso a result tenha algum valor (que acontecerá nas próximos acessos)
*/
if(result) {
data = result;
}
// Atualizamos o texto com o counter
textElement.text = data.counter.toString();
}).catch(error => {
// Caso algum error aconteça ao buscar os dados, exibimos no console
Diagnostics.log('There is an error ' + error);
})
}).catch(error => {
// Caso algum error aconteça ao esperar pelos itens do SparkAR, exibimos no console
Diagnostics.log('There is an error ' + error);
})
@Jonathanaugustoqp
Copy link

Estou tentanto usar esse script mas esta dando erro. Aparece "There is an error Trying to get signal to Script with name (wasTapped). Please make sure to define a ToScript patch with that name and correct type in the patch editor"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment