Santander 2024 - Criando Jogos com Godot. Desafio Classificador de herói ( user input )
- #JavaScript
Em jogos, é bem comum ser disponibilizado ao usuário a capacidade de decidir o nome de seu personagem e, afim de proporcionar essa interação para aqueles que poderiam vir a querer testar esse código, optei por esse caminho em vez de já deixar valores atribuídos de maneira fixa.
Como nunca mexi com a linguagem javaScript, pesquisei no google sobre 'input from user' e cheguei ao resultado mais comum que seria utilizar um método prompt(), vale ressaltar que esse método é para receber uma STRING do usuário pelo console/terminal, o que não funcionou quando aplicado diretamente no código.
var nome = prompt("qual o seu nome ? ") /// não vai funcionar
Pelo meu entendimento, a suposta função prompt não existe na linguagem javaScript, e para a utilizar então será necessario criar uma variavel que receba a função require. Porem antes de tudo, será necessário importar o(s) modulo(s) para realizar essa sincronização.
- Abrir o terminal, na pasta do codigo principal .js
- digitar `npm init` para então criar uma pasta package.json, pasta em que os modulos baixados serão direcionados
- digitar `npm install prompt-sync`
Com os módulos importados, devemos criar nossa "função" prompt da seguinte maneira
const prompt = require("prompt-sync")();
E com isso seremos capazes de sincronizar o codigo com o terminal do usuario, podendo pedir inputs do proprio usuario. Convem observar que o que for informado pelo usuario sempre será do tipo string, e se um valor for pedido, deve-se realizar o casting.
var numeroA = number(prompt("Digite o primeiro numero: ")).
Bem, é apenas isso, com esse artigo apenas vim relatar o que descobri e pelo o que passei com esse primeiro desafio.. como foi dito, nunca mexi com essa lingua, então é bem capaz de haver outros maneira de realizar um input javascript do usuario, talvez HMTL.
Convido a olharem o codigo em questão no meu GitHub: https://github.com/DDMory/ClassifiadorHeroi/blob/main/ClassifHeroWork/Hero.js
obrigado pela compreensão