Novidades

Mostrando postagens com marcador renpy. Mostrar todas as postagens
Mostrando postagens com marcador renpy. Mostrar todas as postagens

Chat sim ou Discord game no ren'py ~fácil e pronto

Olá, fiquei um tempo sem mexer no ren'py porque estava me focando nas traduções e não programando nada. Agora porém quero fazer esse jogo que venho querendo desde de Blooming Panic, ele se modificou muito a ideia com o passar dos anos mas o jogo sem um chat se manteve. Então hoje vou ensinar ou melhor deixar aqui o código simples pra vocês.


A verdade e que existem muitos chat sims por aí, porém todos eles usam muitos códigos, acabam pedindo um conhecimento mais intermediário para mexer e a habilidade de saber compensar ou arrumar erros.

Como transformar o modo NVL em um chat sim


Parte um - Configurando e usando o Modo NVL para estilo de Chat
Parte dois - Posições de escolhas, posições e side imagem...
Demonstração - Vídeo mostrando em funcionamento.

Diferente de muitos códigos disponibilizados por aí que fazem mudanças como reescrever o modo nvl através de screen condicionais eu queria fazer algo mais simples, sendo assim qualquer alteração nesse visual é muito mais fácil de fazer, pois ele usa todo o que já temos feito no próprio REN'PY.


Ajustes feito no GUI.RPY


Por aqui podemos modificar muito o modo NVL, cada parte do código onde eu mexi tem anotações, porém se quiserem ver como cada mudança tem efeito, sugiro vê os videos acima.
Aqui na Gui.rpy eu fiz:

  • Ligar o NONE que permite que as mensagens vão subindo
  • Aumentar e controlar a area do texto, ou seja mensagens
  • Espaço entre mensagem e icons, mensagem e altura da tela, enfim toda configuração de posições, quão perto ou longe do lugar pretendido.


Para fazer os ícones de cada personagem eu usei Window_background, por ser mais fácil de ficar colado com quem está falando e assim como outras opções temos a possibilidade de mudar, ou permitir o player escolher usando o seguinte código na parte do define o mais character



Abaixo parte do código para permitir a escolha de imagem, usando image buttons e grid:



Codigo EXTREMAMENTE IMPORTANTE! Limita a altura das mensagens assim, mesmo mudando a fonte o diálogo não deveria cobrir ou sair da area marcada.




Escolhas,  mexendo aqui configuramos posições, aparência extremamente importante para conseguir o visual almejado.



Tudo isso está explicado no código e no Video no youtube.

Link: Chat sim Ren'py 

Façam bons jogos e me mandem!!! Direitos de uso são livres. 

Share:

Como fazer - escolha seu gênero no Ren'py e nas traduções com Input

Isso é uma coisa que eu queri ter feito há um bom tempo. Primeiro porque quero fazer um jogo com essas opções e depois porque em muitos games que quero traduzir, como Binary Star hero, Intertwine, Our life, pronomes são importantes.


Na verdade é bem simples, o que vamos estar fazendo é basicamente usando o REN'PY INPUT, criando uma variável que representa esse input e usando toda vez que houver a necessidade.

Resumo do que vamos fazer:

  1. Vamos criar alguns Character, do mesmo jeito que fazemos quando estamos criando um personagem para palar no game. 
  2. Esses Character vão ser todos por INPUT, ou seja vão estar associados a uma variável que ficará dentro de [variável].
  3. Basicamente a lógica por trás disso é a mesma do nome input ou de qualquer input que queria usar. 
  4. Podemos criar esses DEFINEs em um arquivo novo, no caso de tradução e colocar o input em outro lugar.
  5. No final tem o código pra baixar e caso queiram em vídeo Como fazer pronomes no Ren'py

Fazendo os DEFINEs/CHARACTERs 


define é o comando que marca a função, se não me engano no arquivo de screen eu expliquei a função desse comando, que é definir algo desde do início do game.
e/pov/povv/pove - a palavra que vem depois do defini foi definida por ele como um character, então quando usarmos no game, no script estaremos falando usando o nome, que aqui é uma variável, pois segue a mesma ideia de input no caso de nomes.
Character - é outro comando que especifica o que estamos fazendo.
( tudo entre) - São parâmetros que queremos que sejam aplicados a tais personagens/definis/character
"[fem]"- Aqui é onde a mágica acontece, aqui temos definido fem como variável. Podemos criar quantas dessas forem necessários, porém prestem atenção para não repetir.


Com essa primeira parte feita, podemos fazer a próxima que nada mais é que fazer quem estar jogando escrever. Isso também pode ser feito com escolha e usando default que é o que vou fazer da próxima vez, esse aqui fiz mais para usar em traduções do Ren'py, com um jeito simples e bem melhor do que usar o método de Error143

Fazendo os INPUT Ren'py



Há uma coisa que precisa ter atenção aqui:

1. O nome ou nessa caso a variável depois do $ (cifrão):
$ fem = renpy.input("alguma frase não muito necessária nesse caso", length=100, screen=u'namecolocar', pixel_width=10)
$ fem = fem.strip()

renpy.input - É o comando que te permite escrever coisas no Ren'py
Length=100 - São quantas letras vão caber no seu espaço
screen=u'namecolocar' - Caso usem uma screen para isso, vocês colocam o nome onde está NAMECOLOCAR
pixel_width=10 - Largura em pixel


Opcional - Ter uma screen




Nesse caso eu quis usar uma screen, mas poderiam não usar e assim o input fica geralmente na caixa de texto.

Como usar isso em uma tradução?


Eu fiz um novo arquivo, criar novo txt, mudar o final e dentro desse novo arquivo .RPY eu coloquei, os definis, tirei o personagem "e" dos diálogos.
Depois criei uma label e coloquei tudas as opções de Input dentro.
Por fim, coloquei um botão dentro da screen preferences para poder chamar a label, para que a pessoa antes de jogar possa mexer e adequar seus pronomes, e provavelmente colocarei um aviso ou na tela inicial ou no inicio do game.

Porém aqui (Pronomes para traduções de Ren'py) está isso tudo feito, para usar é so tacar na pasta do Game, e quando a pessoa for baixar seu patch, coloque esses arquivo dentro de uma pasta escrito game e crie nessa pasta ou cole a pasta tl com sua tradução. 


Aqui deve ou pensar numa saida, ou um novo para a palavra Uma, um tbm, provavelmente farei mais um desses com end3, onde explico pra deixar vazio se usar masculino.

Então é basicamente isso, qualquer dúvida é só perguntar, e tentem brincar com isso pois dá pra melhorar. 

Share:

Variaveis - o que são e como usar no renpy

Em resumo, variáveis são facies de usar no Ren'py, porém sem entender o conceito e a função delas pode ser que futuros erros sejam complicados de resolver. 
Hoje vamos ver, variáveis, um pouco de IF, ELSE e ELIF.




O que você vai ver nesse artigo:
Variáveis conceito geral
Exemplos de usos no Ren'py
If, elif e Else conceitos
Exemplos de uso e utilidades
Parte do documento do Ren'py explicado e adaptado

VARIÁVEIS O QUE SÃO? 


Variáveis são comandos¹ para guardar valores e dados. Em quase todos os tutoriais feitos aqui até hoje usamos variáveis no último, usamos a variável que criamos chamada lovee², essa variável guardava dados de pontos de afeição. 

Criando VARIÁVEIS


De acordo com isso aqui (python variables) e como eu faço as variáveis no renpy.
Você cria variáveis quando atribui um valor a uma palavra-chave, o uso de PALAVRA-CHAVE aqui se refere a algo que irá usar como, alinhamentobom ou alinhamentocaóticobom. Sendo cada uma dessas frases em vermelho algo que pode guardar valores, pontos ou mesmo TRUE ou FALSE.

Normalmente eu costumo usar muito DEFAULT, posso as verificar com certa tranquilidade e basta escrever a variável e usa-la e default suporta tanto sistema de pontos, ou seja números como True e False.

default amorpersonagemum = 0
default vistoantes = False

No menu ou no script pode dar pontos para essas variáveis assim:




Também podem por igual e TRUE ou FALSE

E para verificar isso usamos: IF, ELIF, ELSE (Condicionais do ren'py)
Sendo que podemos ter vários ELIF
if vistoantes = True 
   jump label1
elif amorpersonagemum
   jump label2
else 
   jump labelend

Podemos verificar usando if várias vezes durante o game, podem ver isso no tutorial de glossário no canal Otomerama, Inclusive é um outro uso para o If.
Mas a lógica de qualquer um desses comandos é se tal condição for preenchida, tal coisa vai acontecer. 
Usando outra comparação, digamos que se dois mais dois é igual a quatro, aconteceria um final feliz, mas se dois mais dois for igual a zero (sabe se lá porque) pegaria um final ruim.

Usando Uma linha de um comando em Python

Esse modo é bem comum tendo em vários tutoriais, geralmente vão achar com o nome de FLAG.
"Um caso comum é ter uma única linha de Python executada no repositório padrão."
Uma linha de python sempre começa nesse caso com o sinal de dindin $, e depois o que você quer tornar uma variável.


Fazendo uma flag

$ bom = True
O que é uma flag: "Uma flag variável é usada como um sinal na programação para permitir que o programa saiba que uma determinada condição foi atendida. Geralmente atua como uma variável boolean indicando que uma condição é verdadeira ou falsa."

Uma variável

$ love_personagem1 = 0
Dando pontos a essa variável
$ love_personagem1 += 1

Controlando funções no renpy

$ quick_menu = False (esconde o quick menu até que seja tornado True)

Usando Define

O comando DEFINE defini uma variável assim que o programa é iniciado (init time)
Um dos mais comuns são os personagens que definimos usando DEFINE, sem precisar usar o comando INIT PYTHON.

define a = Character("Ana")

O comando define pode receber um armazenamento nomeado opcional, anexando-o ao nome da variável com um ponto.
Uma vantagem de usar define é que ela registra o nome do arquivo e o número da linha em que ocorreu a atribuição e os torna disponíveis para o recurso de navegação do inicializador. Outra vantagem é que o Lint (sempre deve usar o LINT antes de lançar o game, e depois de o testar) poderá verificar os valores definidos, por exemplo, detectando se a mesma variável é definida duas vezes, potencialmente com valores diferentes.

As variáveis ​​que são definidas usando define são tratadas como constantes, não são salvas ou carregadas e não devem ser alteradas. (Ren'Py não impõe isso, mas produzirá um comportamento indefinido quando esse não for o caso.)

Nota: Lembrando que usamos defini para declarar nossos personagens e as vezes outras coisas.


 Usando Default


O comando DEFAULT define uma única variável, atribuindo um valor ou dados. Quando o jogo começa e não há mudanças nessa variável, esse valor é levado até que exista mudança. Default é equivalente a esse mesmo comando:

default lovee = 0
ou
$ lovee = 0

Assim como no define o LINT consegue encontrar erros nesse tipo de variável. 


Nomes na Store


Essa aqui é uma parte extra importante para usar quaisquer tipo de variável no ren'py.
Store (sem tradução, podemos traduzi para: armazenamento, banco de dados...)
Store é o lugar o qual python guarda seus dados, ou nossas variáveis. E de importância SUPREMA ter certeza de não repetir esses nomes para evitar conflitos.
Não comece variáveis com UNDERLINE "_", eles são reservados para o renpy.

define lovee = Character("Ana")
$ lovee = True
Isso daria erro!

Referência desse artigo e de onde traduzi

Python statements
Conditional statements
Python Variables 

Se algo ficou confuso, ou faltou alguma coisa perguntem aí. 
Eu tive que misturar todas as coisas que são usadas geralmente juntos, porque para mim assim faz sentido e tem uma lógica, já que se relacionam. 
Share:

Como fazer Loveometro no Ren'py - Bonus barrinha animada

Fazer um loveometro no renpy é basicamente fazer uma barrinha que se altera de acordo com uma variável, nesse caso a variável é a afeição de um personagem ou de todos isso é para vocês definirem.
Também vamos aprender a fazer outros tipos de barrinhas, então fique aqui.



Recomendações:
Faça suas barras dentro de uma screen
Defina suas variáveis ou seja como vai contar os pontos antes
Leia a documentação para entender eventuais erros. 
Antes de tentar replicar o que ver aqui, leia tudo com atenção.
Tutorial em video parte 1: Barrinhas como fazer loveometro e outras barrinhas.


Variáveis para o jogo ou barrinha




A primeira coisa se quiser fazer uma barrinha para algum valor personalizado como vida, ou atributos, ou afeição. Precisa criar uma dita variável, nesse exemplo a nossa é LOVEE, e diferente das outras essa é por pontos, diferente das outras. Também temos uma segunda variável, que é o valor máximo da nossa variável lovee e para fazer isso colocamos o prefixo (max do lado a variável ao qual se refere.) MAX_LOVEE = 100(em ortografia prefixo é uma partícula que vem antes do radical da palavra o que pode a fazer mudar, uma analogia. Exemplo: Possível, com o prefixo IM/IN que é de negação, o que faz a palavra Impossível ser o oposto de possível.) 

Barrinhas verticais código

Existem dois tipos de barra no renpy mais usadas, a vertical, que é a barra em pé, ou a barra comum. Vamos começar por uma vertical e para isso segue o código.




Vamos explicar o código da primeira barra na imagem.

bar: Comando barra dentro de uma screen
        bar_vertical True AQUI DIZEMOS PARA O RENPY QUE A BARRA É VERTICAL
        value VariableValue ("lovee", 100, max_is_zero=False, step=None, action=None)
        VALUE  é o que a barrinha controla, poderia entra aqui por exemplo preference "music" e essa barrinha controlaria o volume da música.
        VARIABLEVALUE - diz ao renpy que essa barra vai controlar o valor de uma variável. 
        entre parenteses temos entre aspas a variável que a barra vai controlar
        e a seguinte segunda informação importante que o máximo não é zero com a seguinte linha: MAS_IS_ZERO=FALSE.
        #value AnimatedValue(lovee, max_lovee, delay=1.0)
        nesse exemplo essa opção está desligada, porém isso aqui tem a mesma função que a outra porém aqui quando a barra mudar terá uma leve animação, que a fará preencher devagar.
        left_bar "gui/dark1.png"#barra parada Aqui é auto explicativo (cheio de dica já)
        right_bar "gui/grad.png"#barracheia Aqui é auto explicativo (cheio de dica já)
        #thumb "gui/slider/horizontal_hover_thumb.png" Isso é a imagem que controla a barra quando precisamos dela, nesse caso está desligada, mas no vídeo mostro isso em ação.
        #thumb_offset 24#serve para fazer o icone ficar transparente na barra, sabe quando sua imagem fica flutuando na barra colocar um valor aqui que representa pixels vai resolver isso, eu sempre uso metade da imagem, esse era 40, então coloquei 24
        #top_gutter 20 #tira a sobra do final da barra ou nesse caso cima. Quando sua barra, ou seu thumb sai da barra pode ajustar usando o comando GUTTER, podendo ser LEFT, TOP, BOTTOM, RIGHT. Esse valor também pode ser negativo.
        #bottom_gutter 20# existe o bottom o up, o left e o right
        xysize (157, 719)# aqui deve inserir o tamanho da sua barra, a resolução. o primeiro valor é o comprimento, o segundo a altura. ATENÇÃO: NÃO REDIMENSIONAR AQUI, se precisar modifique a imagem num programa de imagens, recomendo photoscape
        xalign 0.5 Posição horizontal da barra na tela do seu jogo
        yalign 0.2 Posição vertical da barra na tela do seu jogo


Esse foi código dessa primeira barrinha, que na imagem abaixo se encontra no centro com um retângulo amarelo em volta. 


Todas as barrinhas estão cheias nessa foto.


O segundo código lá em cima na foto anterior e da nossa barrinha em octógono. A que tem o número 10 no centro.
Podem notar que o que muda é a imagem, poderia ser um jarro. 

Barra animada no renpy


Tem dois jeitos de fazer isso.
1º Basta trocar o Value VariableValue por AnimatedValue ou
2º Usando ATL





Explicando o que foi feito:

1. Faça seu ATL (gif no renpy, animações no renpy) Na imagem acima mostra como se faz isso.
2. Já tenha as variáveis que vai usar.
3. Caso sua imagem quando colocar na barra e testar não apareça vá em GUI.RPY e mexa em vertical bordes da vbar, podem ver na imagem que eu coloquei 50 onde era 6. Dica: Quando sua imagem de escolha ficar errada mexa nessas bordas até ficar normal.
4. Código da barra animada, notem que no onde colocamos a posição da imagem, colocamos o nome da nossa imagem, ou seja nosso atl.
5. Nessa animação optei por replicar o medidor de Tokimeki Memorial girls side que é um coração batendo. Para isso precisei de 4 imagens duas pulsando em idle e duas pulsando em hover. 

Quaisquer dúvidas, acredito que serão esclarecidas no vídeo. Fiquem de olho no Canal OTOMERAMA lá no youtube que assim que conseguir fazer o áudio do vídeo estarei postando, podem perguntar por aqui também. 

Share:

Ren'py Menu de escolhas com Variáveis que somem ou ficam desativadas

 

Conteúdo desse artigo sobre menu de escolhas do Ren'py:

  • menu de escolhas simples
  • menu de escolhas com variável que some se a variável não tiver sido escolhida
  • menu de escolhas com variável que fica desligada se não tiver side escolhida.
  • Tutorial em video

🔸 O que são menu de escolhas ou Menu in game?

No ren'py usamos os menus de escolha para dar opções aos jogadores, e assim como label (entenda como usar label e o que são) e muitas vezes usado em conjunto com as mesmas.

🔸 Como fazer escolhas simples no Re'npy




Como podem ver temos um menu simples. Duas escolhas. Atenção aos seguintes requerimentos:
Para chamar um MENU ou para fazer um MENU precisamos de comando MENU seguido de ":" dois pontos.

menu:

As escolhas devem estar dentro de aspas, e depois das aspas ter ":" dois pontos.
Caso algum desses sinais falte, acontecerá algum erro. 
E o jump apos a escolha vai levar a label com o mesmo nome, caso não tenham JUMP o menu irá para a próxima label.


Atenção!!! Não usamos o comando MENU dentro de Screens!
Usamos durante o script do jogo é isso na parte escrita. 


🔸 Como usar Variáveis e sumir com a escolha




Na imagem acima temos o menu inicial com a variável $ bobo. Quando o jogador escolher "Você está muito feliz." A nossa variável se tornará real. Isso acontece na segunda imagem que temos duas escolhas: 
"Você estava muito bobo."
"Arrumadinho ficou para trás."

Já na última imagem que temos apenas uma escolha, a variável $ bobo não se tornou real, sendo assim a escolha some. 
E se quiser que a escolha ainda apareça, no último tópico.

🔸 Como definir uma variável


A
 variável foi definida lá no script.rpy logo no inicio usando
Default bobo = False

Default é um comando para definir variáveis. 
bobo é a variável 
False é mais um comando que diz ao Ren'py que algo NÃO aconteceu (True diz ao Ren'py que aconteceu)



🔸 Como usar Variáveis e deixar a escolha Não selecionável


Para isso vamos fazer duas coisas muito simples (sério é tão simples que assusta)
Primeiro vamos inserir depois de Defini Characters (ou no inicio do script.rpy), a seguinte linha:

define config.menu_include_disabled = True

Esse comando irá tornar todas as escolhas onde a variável não é real, não foi escolhida em escolhas inertes. Ou seja elas irão aparecer, mas não poderão ser escolhidas.




Agora precisam abrir o arquivo GUI.RPY e mudar a seguinte cor de acordo com o seu jogo ou com seu padrão de escolhas. 

Como sempre podem estar usando CTRL+G para buscar pelo número da linha




Na linha 214, vão apagar qualquer coisa depois do sinal de igual, inserir aspas e um código de cor HTML, basta jogar no google que acham um monte desses para escolher a cor.

E no jogo, nesse caso eu escolhi branco (eu sei péssima cor, ajeitarei depois)




A primeira escolha não é possível escolher, nem ao mouse ela irá responder. E para testar isso não precisa mexer na cor, basta ter uma variável no jogo e associa-la a uma escolha e colocar a linha mágica.

Bom por hoje foi isso, se inscrevam no Otomerama no Youtube que lá vou estar postando os vídeos de tutorial do Ren'py. 
Share:

Ren'py: Screens: Como usar, documentação, xpos e ypos, e um pouco mais.

 


O que são screens
Possiveis usos de Screens
Xpos, Ypos, Xalign e Yaling
Call ou Show screen
Documentação do renpy traduzida (inicio)


👉 Mesmo tutorial em vídeo: Como fazer screen no renpy básico


Screens and Screen Language

As coisas que o player ver quando olhando para um jogo de Ren’py podem ser divididas em imagens, e interface do usuário (gui/ui). Imagens são exibidas para o player usando os comandos scene, show, e hide, e geralmente são partes da história que está sendo contada. Tudo mais que o player ver é parte da interface, a qual é personalizada usando screens.

Screens podem ser exibidas de quatro modos:

  • Implícita, quando se executa um comando de script. Por exemplo, o comando say, irá culminar na screen say sendo exibida.

  • Automática, por exemplo, o Ren’py irá mostrar a screen main_menu quando iniciar. Ou quando o player retornar a tela inicial

  • Como uma ação, associado a um botão, um botão do mouse, ou um tecla do teclado. Por padrão a screen de salve é exibida quando o player pressiona ESC ou clica no botão direito do mouse. Também é possível definir um botão que mostra a screen de salve.

  • Explicita, usando comandos que culminam na screen sendo exibida.

Mais que uma screen pode ser exibida por vez.

Screens tem duas funções principais. A primeira é exibir informação para o usuário. A informação pode ser exibida usando texto, barras, e imagens. Algumas informações exibidas desse modo são vitais para a jogabilidade. A say screen, por exemplo, é usada para exibir o diálogo para o player, incluindo o nome do personagem o que está sendo dito.

A outra coisa que uma screen pode fazer é permitir ao player interagir com o jogo. Botões e barras permitem o usuário fazer ações e ajustar valores. Ren’py incluí uma boa quantidade de ações pré definidas, permitindo o player avançar o jogo, controlar as configurações, carregar e salvar o jogo, e fazer muitas outras ações. Um desenvolvedor de jogos podem também usar Python para escrever novas ações.

Screen atualizam no inicio de cada interação, e cada vez que uma interação é iniciada. Note que o comando  with None  não faz uma interação acontecer, e também não irá atualizar a screen.

Uma screen tem um conjunto(scope) de ações associadas, dando valores e algumas variáveis. Quando uma variável é acessada por uma screen, primeiro a screen irá olhar o scope, e então irá olhar uma variável global.

Screen não devem causar efeitos colaterais que são visíveis fora da screen. Ren’py irá executar uma screen várias vezes como achar necessário. Ele executa uma screen como parte do processo de pré-carregamento da imagem, antes que a screen seja exibida. Como resultado, se executar uma screen tem efeitos indesejados, esses efeitos poderão acontecer de modo imprevisível.

Usando geradores de Python em screen podem culminar em resultados inesperados. Isso tem um problema com como o Python interpreta e compila o código fonte de Python que será usando em uma screen. Geradores podem ser usados em funções de Python chamadas por uma screen, mas não na screen.

[https://www.renpy.org/doc/html/screens.html]

Hoje vamos ver screen no renpy porém a parte necessária para um projeto simples. 

Conceito resumido de screen

- No renpy screen são equivalentes a telas que você cria para certas funcionalidades.
Por exemplo se quiser fazer um jogo, um minigame, seria melhor por numa screen. Se quiser fazer uma tela que mostra a afeição, faça uma screen, se quiser fazer um menu ou um botão durante todo o game use uma screen. Assim toda vez que quiser mostrar a tela ou mesmo chamar o minigame irá usar um dos comandos:

👉 show screen nomedascreen – show é um comando que irá fazer sua screen aparecer, porém ao sair dessa tela, o jogo volta para última label. Também ao usar show, seu jogo continua acessível em baixo dessa tela. 

👉 call screen nomedascreen – Já usando call tudo abaixo dessa screen fica parado, ou seja não pode acessar nada até que o player aperte o botão que saia dessa tela. 

👉 Tag menu – essa tag faz com que quando chamar a screen as outras fechem, deixando apenas uma aberta. 

👉 hbox – uma comando de caixa horizontal. Significa que irá colocar seus itens um ao lado do outro na mesma linha.

👉 vbox – um comando de caixa vertical. Significa que irá colocar itens um abaixo do outro.

👉 xpos - um comando onde irá inserir o local exato onde quer que algo fique na screen. Lembrando que X sempre se refere a posição horizontal, de um lado até outro. 

👉 ypos - um comando onde irá inserir o local exato onde quer que algo fique na screen. Porém Y sempre se trata de altura, vertical, ou baixo e cima. 

👉 xalign - um comando que controla onde o item irá aparecer, assim como xpos é referente a horizontal na tela. Porém não usamos o local exato da resolução na tela e sim números com pontos, como 0.456, ou 0.5 (que exatamente no meio da tela).

👉 yalign - um comando que controla onde um item irá aparecer, assim como ypos é referente a altura, ou verticalidade. Porém não usamos o local exato da resolução na tela e sim números com pontos, como 0.456, ou 0.5 (que exatamente no meio da tela).

Geralmente onde se pode usar xpos, também pode se usar xalign.
Tentem não ter muitas screen no projeto pois podem o deixar pesado e quanto mais pesado menos aparelhos irão ser capaz de rodar seu jogo.
screen suportam if, assim pode fazer um screen de mapa e utilizar ela no game inteiro, apenas desligando locais com if se a pessoa estiver na sala pode ocultar o botão que a levaria para o banheiro. 

Abaixo está um menu de preferências que fiz para meu jogo Cosmic Kiss. Em uma única screen coloquei as barras do menu de opções, as configurações de tela cheia, fonte e outras coisas. 


Aqui está o menu dentro do jogo feito com essa programação acima. 


Cosmic kiss otome game portugues
Ainda não mudei cores das letras.

Para ver essas configurações melhor recomendo assistir o link do vídeo acima e alguns outros do canal Otomera no youtube. Embora esse artigo sirva de complementação para o Vídeo. 


Share:

Renpy Labels e Jumps: Como usar

 


 Label e Jumps (resumo)

 Label são configurações usadas apenas para servirem de link. Ou traduzindo da page oficial:

Label Statement

Label statements allow the given name to be assigned to a program point. They exist solely to be called or jumped to, either from Ren'Py script, Python functions, or from screens.

Definições chamadas de Label permitem o nome escolhido ser direcionado a um ponto designado. Elas apenas existem para serem CHAMADAS, ou direcionas com JUMP. Sendo de Ren’py scripts, funções de Python, ou de Screens.

label sample1:
    "Here is 'sample1' label."

label sample2(a="default"):
    "Here is 'sample2' label."
    "a = [a]"

Jump Statement

The jump statement is used to transfer control to the given label.

Os JUMPS são usados pra direcionar para a label escolhida.

If the expression keyword is present, the expression following it is evaluated, and the string so computed is used as the label name of the statement to jump to. If the expression keyword is not present, the label name of the statement to jump to must be explicitly given.

Se a expressão (NOME DA LABEL, ou afins), está presente, a expressão seguinte é avaliada a linha computada é usada como o nome da label pra fazer o Jump. (Vai pular para o nome válido da label). Se a expressão não está presente (ou está no lugar errado, com espaços errados), o nome da label DEVE ser dado.

Unlike call, jump does not push the next statement onto a stack. As a result, there's no way to return to where you've jumped from.

Diferente de CALL, jump não chama o próximo comando no stack (digamos no código). Desse modo, não é possivel retornar de onde veio o JUMP.

label loop_start:

    e "Oh no! It looks like we're trapped in an infinite loop."

    jump loop_start

(A tradução do documento foi adaptada para o uso mais prático das coisas sendo ensinadas nela. Logo não é uma tradução literal e sim uma tradução explicativa)


Exemplos de usos de JUMP e LABEL





No exemplo acima temos o jump deeesco que é a label que está logo abaixo desse menu de escolhas.
Sendo assim podemos controlar para onde quem joga vai, o que quem joga vai ter acesso via texto, imagens e afins. 
Recomendo que padronize suas LABEL , principalmente se for ter muitas. Exemplo de padronizações podem ser assim:
capituloumana1
capituloumana2 
E assim por diante, usando quaisquer nome, mas nunca acentos e nem cedilhas.




Nesse outro exemplo usei Jump e Label para definir a rota combinando com if, elif e else, e alguns variaveís que criei para definir rotas e finais. 

Link: Como fazer finais com renpy (opção um)

Resumindo, Label tem a função exclusiva de controlar a história e guiar para nomes que são os nomes que o dev escolhe para as LABEL. 
JUMP, por outro lado, tem a função de ir até as Label. 
Sendo assim, fiquem de olho em que estão querendo usar label, o uso delas é mais para texto. Usos criativos podem acabar deixando o jogo pesado ou levando a bugs. 
Por exemplo para chamar uma tela de capítulo não deve se usar jump ou label. O certo é show screen, ou call screen. 


Em breve vou lançar esse tutorial em vídeo se houver necessidade podem deixar perguntas aqui. 

Share:

Renpy: Configurando o nome separado da imagem do nome


Olá! Tudo bem?
Hoje trago a versão escrita desse tutorial aqui:  Renpy namebox: Ajuste das letras e do nome separados.
Também postei isso no Instagram do Otomerama. 

Muitas vezes eu vi pessoas defendendo que mexer na imagem da caixa de nome, mexeria na posição do nome. Verdade ou Mito? 
Verdade se você mexer em um lugar específico, por isso hoje eu trouxe pra vocês, onde devem mexer para configurar as duas separadas.

"O Ren'py tem vários jeitos de fazer a mesma coisa" (Pessoa do grupo do Renpy)


Configurando a posição do nome letras



Para começar vamos lá em screen.rpy, dê Ctrl+g e digite o seguinte número: 151
Aqui vamos mexer apenas nas LETRAS, na posição delas.

Caso tenha mexido na suas screen.rpy use Ctrl+f e digite: style say_label



Nessas linhas podem adicionar, xpos, ypos, font, mas lembrando aqui só configuramos o nome, as letras.

Configurando a imagem que aparece atrás do nome.



Novamente: dê Ctrl+g e digite o seguinte número: 141
E assim vai encontrar a parte que configura a posição da sua imagem. 



Nesse passo, seria de extrema importância que já tenha colocado sua imagem dentro do jogo, como a minha imagem acima já está editada, vamos destacar algumas coisas.

Minha imagem no tamanho real dela era: 613 x 74
Porém desse tamanho ficaria muito grande, sendo assim no XSIZE que significa o tamanho do comprimento, definir para ser de 507, ou seja diminui o tamanho da imagem em aproximadamente 100 pixels. E em YSIZE  que define a altura da imagem para 71.
Minha imagem ajustada: 507 x 71
XPOS e YPOS: são respectivamente a posição horizontal na tela, e a altura da imagem na tela. 

Conclusão: Com isso podemos mexer tanto nas letras (NOME) e na imagem de modo independente, sem gerar nenhum conflito ou ficar esquisto. 



Share:

Como fazer um jogo no renpy - Dicas, conselhos e códigos

Olá, o renpy é uma das melhores engines para fazer visual novel da atualidade. Embora precisa de códigos você é perfeitamente capaz de fazer um jogo sem esbarrar em nada complicado com um pouco de pensamento lógico. 



Primeiro para fazer um jogo no renpy não necessariamente vai precisar saber grandes coisas sobre programação no entanto há certas habilidades que vai precisar ter e acredite elas não são as que estão pensando agora.

Habilidade de pensamento lógico - Te possibilita resolver problemas, "está mais relacionado à nossa habilidade de encontrar o caminho correto para a resolução de um impasse do que necessariamente nossa habilidade com os números." (fonte)
Conhecimentos básicos - Como: o que é uma engine, o que são sprites, e outros termos como Resolução, vou explicar abaixo, para sair daqui fazendo um jogo e me mandado pra jogar.
Disciplina - Um jogo de visual novel leva um tempo para ficar pronto. Imagina se você decide só mexer nisso quando der vontade. É como atividade física, precisa ter uma agenda. 
Ir aprendendo inglês conforme programa - Bom a maioria das palavras usadas em ferramentas de programação são em inglês. Além disso os melhores tutoriais estão em outros idiomas. Isso facilitaria sua vida, mas não é obrigatorio, e não deve ser um fator que te impeça de programar. 
Não demorar pra começar - nunca estaremos prontos, então podemos só começar certo? É isso não adie, a jornada nesse caso no renpy vai te ensinar muita coisa.
Todas essas habilidades podem ser aprendidas! 

Tutorial em vídeo

Primeiro passo instando renpy:





Basta baixar do site do RENPY (https://www.renpy.org/latest.html), escolher qualquer uma dessas versões, extrair em uma pasta do seu computador, de preferência no seu disco principal. Porém podem instalar ele em qualquer disco no seu computador.

E agora? 
Defina uma local para seus jogos, da seguinte maneira, vá em preference.




Onde está escrito Projects Directory, escolha uma pasta ou faça uma, eu sempre gosto de fazer, e assim todos os projetos de jogos do renpy que estiverem ali dentro serão reconhecidos e vão aparecer ali do lado, na tela inicial do renpy.
No outro retângulo rosa é o local onde podem mudar o idioma, como costumo fazer mais coisas em inglês o meu fica mais nesse idioma, no entanto quando quero fazer um projeto em português, eu mudo ali, e assim todos os projetos que eu criar depois serão em português.

Criando um jogo e mecânicas


Criar um jogo no renpy é a parte mais fácil. Para facilitar as coisas eu vou orientar suas escolhas e depois vamos conversar sobre as mecânicas.




Vamos seguir da parte superior esquerda até a parte inferior direita.
No primeiro quadrado, criamos o projeto ao clicar no link +Create New Project, depois disso vamos fazer algumas escolhas, como o nome do projeto, na imagem já tem as dicas mais importantes na hora de escolher o nome, caso insiram esses caracteres mencionados pode ser que não queira criar o projeto. 
E por último a resolução, que é o tamanho da tela, já expliquei isso por aqui. Porém recomendo que sempre criem seu jogo em FULLHD que é a resolução marcada na imagem: 1920x1080. 

Tá mas o que significa essa resolução?

Todas as suas imagens vão ter que levar em consideração que serão usadas em uma tela com esse tamanho. Todas as suas imagens de fundo devem ser desse mesmo tamanho, ou um pouco maior caso queira fazer elas se mexerem. Seus sprites devem ser de um tamanho que fique bom nessa resolução, por exemplo em 7 dias até o natal eu usei meus sprites em: 
Axel, o personagem de cabelo claro é mais baixo: Resolução usada no jogo 500x895, Resolução original do desenho 914x1280 (geralmente gosto de fazer os personagens na resolução de hd ou 2k.
Kuan, o personagem pardo, mais sério: Resolução usada no jogo 441x895, Resolução original do desenho 914x1280.

O que são mecânicas? 



Imagem que vou atualizar na gui que fiz essas grandes vão entrar no lugar dos save, e essas linhas de letras vão se tornar as barrinhas de controlar som e texto.

Então tudo bem, criou seu jogo, arrumou suas imagens e as declarou, declarou seus personagens (imagem abaixo), já até pensou na história.




Agora é o seguinte vamos por eliminação, porque se você está começando agora há certas mecânicas que não recomendo você a tentar usar. Porque são complicadas, os problemas que elas vão dá podem ser avançados de mais para que consiga resolver sem ajuda, caso não ache alguém que possa te ajudar.

Mecânicas recomendadas de acordo com alguns requerimentos:

Se for seu primeiro projeto e não souber inglês: 
Finais por escolhas
Modificações simples na interface do renpy
Menu inicial original
Galeria
Movimento de mapa do canal Hora de programar renpy

Se for seu primeiro projeto e souber Inglês:
Todos os itens acima
Inserir parâmetros ou status
Animações simples
Tela de nome
Barra de atributos (tipo a de romance de amor doce)
CTC

Se entender alguma coisa de renpy, ou mais projetos completos:
Todos os itens acima
Minigames de input
Minigames como lutas
Inventario
Lojas
Personalização dos personagens
Personalizações avançada de interface
Inserção de admob

É porque eu penso que certas coisas não devem ser feitas por quem não tem experiência?
Simples: 
1. Porque uma coisa é resolver um bug pra você, outra coisa é resolver pra quem baixar o jogo.
2. Aprender aos poucos. Acredito que vai ser muito mais construtivo ter uma curva de aprendizado indo do mais FÁCIL até o mais DIFÍCIL.
3. As possibilidades de finalizar um jogo simples é bem maior do que finalizar um jogo complexo.
4. Caso consiga entender tudo e fazer tudo, mesmo sendo seu primeiro projeto, pode muito bem implementar as coisas que requerem mais conhecimento.

Então aprendemos:
  • Como instalar o renpy
  • Como fazer um jogo no renpy
  • Resolução indicada para projetos novos
  • Resolução dos sprites aproximada (cada projeto isso pode mudar), pra essa resolução
  • Dicas para não desistir do projeto.
  • Como declarar seus personagens
  • Como declarar imagens (artigo)
  • Finais por escolhas 1 (artigo)

Agora vamos aprender a editar o arquivo que vai nos possibilitar escrever, mostrar as imagens e coisas assim no jogo:






Selecione seu projeto, e abra o script.rpy
Nota: Podem criar vários desses arquivos rpy, como por exemplo um só pra rota de um personagem, facilita na organização, porém ou vão ter que abrir indo na pasta game ou clicar no open project. Para criar qualquer outro arquivo rpy, vá na pasta game, crie um txt, e renomeie depois do ponto para .rpy





Antes do LABEL START que marca o inicio do jogo, pode inserir qualquer coisa. Desde de imagens a variáveis. 
Variáveis são qualquer coisa que interfira na experiência do jogador, por exemplo ponto de afeição são variáveis, dinheiro são variáveis e afins...



Antes do LABEL START, costuma-se definir os personagens. 
define e = Character("Eileen")
Eu não uso nomes nessas tags, sempre uso letras ou abreviações, como mostra na imagem acima do script de 7 dias até o natal. 
Dentro do parenteses pode inserir cores, fontes para aquele nome, até mesmo um caixa de texto para usar toda vez que ele for falar, ou seja toda vez que usar a letra ou nome do personagem para declarar uma fala.




Publicando o jogo no renpy


 
Para aumentar a imagem clique nela e abra em uma nova guia, podem baixar pra usar na hora da dúvida

Podem fazer quantas versões quiserem, para corrigir erros e afins.

Finalizando:
Passamos bem rápido como fazer um jogo no renpy, desde da instalação da engine, até a finalização de um projeto que é quando faz o arquivo para que outras pessoas possam jogar e testar. Para complementar mais sobre o assunto, vide as tags RENPY, e FAZER UMA VISUAL NOVEL.
Boa sorte com seus projetos, e aproveitem enquanto ainda mexo no renpy para pedirem dicas.
Share:

Minha escolha do mês

Minha escolha do mês
Jogo novo das DEVs da Honey Bunny, ptbr e no celular tbm

Tradução - Status

Shin Patch lançado
Ukyou 11/26 traduzidos
Our life beginnings & Always LuaMua patch
Binary star Hero 5/8 traduzidos

Nosso Canal

Links diretos

Otome games
Otome game em Portugues
Otome union
Conheça otomes games
Otome Games no switch
Otomerama Desevolvedora de games

Grupos

Todas as reviews

Doações

 

PIX: otomegamebremais@gmail.com

Canal pra tutorias e dev logs

Translate

Jogadores e Devs participem!

Jogadores e Devs participem!
Estamos esperando vocês! Vamos incentivar o mercado nacional para fazermos mais sonhos com nosso idioma, e melhorar cada vez mais!

Followers

Otome games