Skip to content

Instantly share code, notes, and snippets.

@kubido
Created September 24, 2021 09:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kubido/c99b50862aaf7153e271151adfa614b1 to your computer and use it in GitHub Desktop.
Save kubido/c99b50862aaf7153e271151adfa614b1 to your computer and use it in GitHub Desktop.
SparkAR random text generator
/**
* (c) Facebook, Inc. and its affiliates. Confidential and proprietary.
*/
//==============================================================================
// Welcome to scripting in Spark AR Studio! Helpful links:
//
// Scripting Basics - https://fb.me/spark-scripting-basics
// Reactive Programming - https://fb.me/spark-reactive-programming
// Scripting Object Reference - https://fb.me/spark-scripting-reference
// Changelogs - https://fb.me/spark-changelog
//
// For projects created with v87 onwards, JavaScript is always executed in strict mode.
//==============================================================================
// How to load in modules
const Scene = require('Scene');
const Time = require('Time');
const Random = require('Random');
const Patches = require('Patches');
// Use export keyword to make a symbol available in scripting debug console
export const Diagnostics = require('Diagnostics');
// To use variables and functions across files, use export/import keyword
// export const animationDuration = 10;
// Use import keyword to import a symbol from another file
// import { animationDuration } from './script.js'
(async function () { // Enables async/await in JS [part 1]
// To access scene objects
// const [directionalLight] = await Promise.all([
// Scene.root.findFirst('directionalLight0')
// ]);
// import module Scene
// Pilih object 2dText dengan nama '2dTextMain'
const mainText = await Scene.root.findFirst('2dTextMain')
const destinations = ['Bali, Indonesia', 'New Orleans', 'Kerry, Ireland', 'Marrakesh, Morocco', 'Sydney', 'The Maldives', 'Paris, France', 'Cape Town, South Africa', 'Dubai, U.A.E.', 'Bora Bora, French Polynesia', 'New York: ', 'Dubrovnik, Croatia', 'Edinburgh, Scotland', 'Rome, Italy', 'Paro Valley, Bhutan', 'Jaipur, India', ' Waikato, New Zealand', 'Havana, Cuba', 'Tokyo, Japan: ', 'Antarctica', 'Vancouver, Canada: ', 'Los Angeles', 'Kruger National Park, South Africa', 'Santorini, Greece', 'Moscow, Russia', 'Singapore', 'London, England', 'Rio de Janeiro, Brazil', 'Petra, Jordan', 'Hong Kong', 'Barbabos', 'Amsterdam', 'Santiago, Chile', 'Cairo, Egypt', 'Copenhagen, Denmark', 'Seoul, Korea: ', 'Laucala Island Resort, Fiji', ' Providencia, Colombia', ' Machu Picchu, Peru', ' Virunga National Park, Democratic Republic of Congo', ' Lisbon, Portugal', ' Hanoi, Vietnam', ' Hawaii', ' Ibiza, Spain', ' Beijing, China', ' Budapest, Hungary', ' Cinque Terre, Italy', 'Buenos Aires, Argentina', ' Las Vegas', ' Matterhorn, Switzerland']
const isRecording = await Patches.outputs.getBoolean('started')
const textRecording = isRecording ? "Recording" : "Not Recording"
Diagnostics.log(textRecording)
if (isRecording) {
const interval = Time.setInterval(() => {
let randomIdx = Math.floor(Random.random() * destinations.length)
let city = destinations[randomIdx]
mainText.text = city
}, 50)
Time.setTimeout(() => {
Time.clearInterval(interval)
}, 5000)
} else {
mainText.text = "Silahkan Record terelebih dahulu"
}
})(); // Enables async/await in JS [part 2]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment