Índice:
- Etapa 1: Crie seu jogador
- Etapa 2: Novo código de quarto
- Etapa 3: Criação de um link a partir de uma variável
- Etapa 4: teste
- Etapa 5: adicionar uma lista de salas
- Etapa 6: Eliminar salas
- Etapa 7: Teste
- Etapa 8: estranhezas com cubos de açúcar e objetos
- Etapa 9: a função Clone ()
- Etapa 10: Por enquanto é isso
Vídeo: Links de variáveis em Twine With Sugarcube: 10 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Estou tão feliz que você se juntou a mim novamente! Isso significa que o Wumpus ainda não o comeu. Boa!
Para aqueles de vocês que não estão familiarizados, este é um conjunto de tutoriais que estou fazendo para ajudar minha adorável prima widdle oochy-skootchy com seu projeto de último ano. Esses tutoriais são uma referência sobre o que você pode fazer com alguns dos recursos de programação do Twine e do Sugarcube. Se você quiser acompanhar, você pode encontrar o primeiro tutorial aqui.
No último tutorial, construí um pequeno conjunto de salas que o jogador pode explorar. Eu adicionei um objeto Wumpus e criei um código genérico para alterar o que era exibido em cada sala, dependendo de onde o Wumpus está.
Etapa 1: Crie seu jogador
Esta etapa é muito simples. Basicamente, estou apenas usando o mesmo código do meu $ wumpus, mas com uma variável $ player.
Etapa 2: Novo código de quarto
Alterou o código genérico do quarto para que o valor de $ player seja o quarto atual. Em seguida, compare $ wumpus com $ player em vez da sala atual.
Esta é uma pequena alteração e não totalmente necessária, mas gosto de manter meu código organizado.
Etapa 3: Criação de um link a partir de uma variável
Por fim, desejo substituir o link na minha sala inicial por um que muda com base no valor de $ player. Isso pode ser feito com a função "" no Sugarcube. Você pode ler mais sobre isso na página de documentação do Sugarcube.
A primeira string após nosso comando é a frase que aparecerá em nossa passagem. O segundo é o nome da passagem à qual queremos nos vincular. Estou usando "Hunt the Wumpus!" como minha frase, mas poderíamos usar nossa variável lá se quisermos que o jogador saiba para onde está indo com antecedência, assim:
Etapa 4: teste
Ao testar seu código, você deve descobrir que seu link foi substituído por qualquer frase que você escreveu antes. Clicar nele leva você a uma sala aleatória do jogo.
Infelizmente, isso também pode levá-lo direto para a sala de Wumpus! Isso não importa muito agora, mas em um jogo real, seria um jogo instantâneo. Precisamos consertar isso.
Etapa 5: adicionar uma lista de salas
Primeiro, vamos criar uma lista de salas para facilitar o gerenciamento das salas. Ao declarar esse array, podemos usá-lo para definir nossos valores $ player e $ wumpus sem repetir o código. Ele também tem outra vantagem que exploraremos a seguir.
O teste com este código deve se comportar exatamente como antes.
Etapa 6: Eliminar salas
Eu adicionei uma única linha de código ao código anterior (destacado).
Os arrays no Sugarcube têm uma função incorporada que permite excluir elementos deles pelo nome. Nesse caso, assim que atribuirmos um quarto a $ wumpus, podemos excluí-lo de nossa lista de $ quartos. Esta função é complicada, no entanto. Não funcionará a menos que a saída da função seja atribuída ou usada de alguma forma. Para cuidar disso, criei a variável temporária _temp.
No Sugarcube, as variáveis temporárias começam com um sublinhado (_) em vez de um dólar ($). Eles são úteis porque são excluídos assim que a passagem é executada, então você não precisa se preocupar com nomes de variáveis sobrepostos.
Estou excluindo $ player room da $ roomlist também, como uma coisa natural.
Etapa 7: Teste
Embora pudéssemos executar o código como está agora, esse não seria um teste muito completo. Se executarmos o código e descobrirmos que $ player e $ wumpus estão atribuídos a salas diferentes, não sabemos se é porque o código funciona ou se é apenas um acaso. Claro, poderíamos executar o código muitas vezes e supor que, se ele nunca atribuir a ambos a mesma sala, nunca o fará, mas isso vai levar uma eternidade e ainda não é uma garantia 100% de que isso nunca vai acontecer.
Em vez disso, precisamos de uma maneira de verificar.
Eu adicionei três linhas ao topo de nossa passagem de introdução que nos permitirá ver os valores de nossas variáveis $ wumpus, $ player e $ roomlist. Por causa da maneira como configuramos nosso código, sabemos que a sala $ wumpus e a $ player room devem ser eliminadas da $ roomlist.
Quando executamos este código, podemos verificar se é esse o caso.
Etapa 8: estranhezas com cubos de açúcar e objetos
Objetos de cubo de açúcar são um pouco estranhos. Deixe-me demonstrar isso.
Enquanto estava construindo este projeto originalmente, eu queria salvar minha $ roomlist em uma variável $ saveroom antes de começar a excluir quartos dela. Achei que seria útil mais tarde.
Quando recebi algum comportamento estranho deste código, adicionei outra linha à minha página de introdução para permitir que eu olhasse minha variável $ saveroom (segunda imagem).
Fiquei chocado ao descobrir que os elementos que eu havia excluído de $ roomlist também haviam sido excluídos da minha lista salva! Você pode ver isso em ação na terceira foto.
Isso ocorre porque quando você copia um array como este, você não está realmente dizendo ao Twine para copiar o array, você está dizendo ao Twine que essas duas variáveis são o mesmo array. Quando você faz algo no array usando uma variável, ele muda o mesmo array que a outra variável está olhando!
Podemos consertar isso com a função clone ().
Etapa 9: a função Clone ()
Você pode ler sobre a função clone () na página de documentação do Sugarcube.
Uma cópia "superficial" é o que estávamos fazendo antes. Em vez de fazer uma cópia completa de todo o array, ele apenas assume que sua variável está trabalhando com o mesmo array. Em vez de uma cópia superficial, clone () faz uma cópia "profunda", que se comporta como você esperaria. Cada elemento da matriz é copiado em uma nova matriz e é totalmente separado do original.
Se testarmos esse novo código, descobriremos que funciona conforme o esperado.
Claro, não importa se você mantém $ lista de quartos ou não. Para os propósitos do meu projeto, eu não vou. Isso tudo foi apenas para demonstrar cópias profundas vs. rasas.
Etapa 10: Por enquanto é isso
Adicionamos um código que permite que nosso jogador comece em uma sala aleatória. Além disso, eliminamos um bug em que o jogador começava na mesma sala que o Wumpus.
Aprendemos como criar links a partir de variáveis e como a cópia de array é tratada pelo Sugarcube.
As coisas estão acelerando, mas estamos apenas começando!
Caçada feliz!
Recomendado:
Quartos genéricos em Twine With Sugarcube: 11 etapas
Salas genéricas em Twine com Sugarcube: Olá, olá e bem-vindo ao meu tutorial sobre como construir Wumpus Hunt em Twine com Sugarcube! Twine é uma ferramenta muito simples, projetada para criar jogos de aventura em texto! Minha priminha favorita escolheu fazer um jogo com Twine para seu projeto sênior, e
Gere links de afiliados Banggood (referência) mais fácil do que nunca: 4 etapas
Gerar links de afiliados Banggood (referência) mais fácil do que nunca: a versão condensada deste instrutível pode ser encontrada em meu blog pessoal As vendas de afiliados são uma grande fonte de renda adicional para criadores de conteúdo, e muitas pessoas em instructables os usam. programa de afiliados é Ban
Uso de limites de intensidade de escala de cinza variáveis para visualizar e identificar anormalidades em imagens de mamografia: 9 etapas
Usando limites de intensidade de escala de cinza variáveis para visualizar e identificar anormalidades em imagens de mamografia: O objetivo deste projeto foi identificar e usar um parâmetro para processar imagens de mamografia em escala de cinza de várias classificações de tecido de fundo: Gordura, Gordura Glandular, & Tecido Denso. Esta classificação é usada quando os radiologistas analisam mam
Descascador de fios de precisão - Novos links de vídeo: 3 etapas
Descascador de fios de precisão - Novos links de vídeo: descascador de fios rotativo manual de uma caneta Bic, uma chave de fenda e uma lâmina de barbear. Recentemente, comprei um carretel de fio de teflon 30AWG. Achei que seria ótimo para prototipagem, porque um ferro de solda quente não derrete o isolamento. Bem, é meio que não
N: Como fazer uma escultura em acrílico multicamadas e LED com níveis de iluminação variáveis: 11 etapas (com imagens)
N: Como fazer uma escultura em acrílico multicamadas e LED com níveis de iluminação variáveis: Aqui você pode descobrir como fazer você mesmo n feito para a exposição www.laplandscape.co.uk com curadoria do grupo de arte / design Lapland. Mais imagens podem ser vistas no flickrEsta exposição decorre de quarta-feira, 26 de novembro a sexta-feira, 12 de dezembro de 2008, inclusive