Fazer a tela do jogo tremer

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Fazer a tela do jogo tremer

Mensagem por Harika em 01.04.17 11:01

Olá, eu gostaria de saber como fazer a tela do jogo tremer por alguns segundos em determinada cena, alguém sabe e pode me ajudar? Question
avatar
Harika
Iniciante
Iniciante

Feminino Mensagens : 2
Data de inscrição : 15/08/2016
Localização : Curitiba

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazer a tela do jogo tremer

Mensagem por Kurotsugu-san em 01.04.17 14:09

Olá. Já existem no jogo duas transições que "tremem" a tela, que é vpunch e hpunch, você usa como transição para a mesma imagem.
Ou, caso queira algo mais agitado, pode colocar esse código no começo do script:
Código:
init:

    python:
    
        import math

        class Shaker(object):
        
            anchors = {
                'top' : 0.0,
                'center' : 0.5,
                'bottom' : 1.0,
                'left' : 0.0,
                'right' : 1.0,
                }
        
            def __init__(self, start, child, dist):
                if start is None:
                    start = child.get_placement()
                #
                self.start = [ self.anchors.get(i, i) for i in start ]  # central position
                self.dist = dist    # maximum distance, in pixels, from the starting point
                self.child = child
                
            def __call__(self, t, sizes):
                # Float to integer... turns floating point numbers to
                # integers.                
                def fti(x, r):
                    if x is None:
                        x = 0
                    if isinstance(x, float):
                        return int(x * r)
                    else:
                        return x

                xpos, ypos, xanchor, yanchor = [ fti(a, b) for a, b in zip(self.start, sizes) ]

                xpos = xpos - xanchor
                ypos = ypos - yanchor
                
                nx = xpos + (1.0-t) * self.dist * (renpy.random.random()*2-1)
                ny = ypos + (1.0-t) * self.dist * (renpy.random.random()*2-1)

                return (int(nx), int(ny), 0, 0)
        
        def _Shake(start, time, child=None, dist=100.0, **properties):

            move = Shaker(start, child, dist=dist)
        
            return renpy.display.layout.Motion(move,
                          time,
                          child,
                          add_sizes=True,
                          **properties)

        Shake = renpy.curry(_Shake)
    $ sshake = Shake((0, 0, 0, 0), 1.0, dist=15)

Agora, para usar, apenas use sshake como transição. Pode alterar os valores, como, por exemplo, o "1.0" que é o tempo de duração, e o dist=15, que é a intensidade.
Qualquer dúvida, só dizer.

_________________
Tatsuhiko Takimoto escreveu:Quando leio minha história nos dias em que estou de bom humor, penso. “Incrível! Sou um gênio!”
E nos dias que estou deprimido, é sempre, “Sou uma desgraça por ter escrito algo assim! Morra agora mesmo!”
avatar
Kurotsugu-san
Criador do Ren'Py Brasil

Masculino Mensagens : 100
Data de inscrição : 28/03/2015
Localização : Porto-Alegre - RS

Ver perfil do usuário http://renpybrasil.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Fazer a tela do jogo tremer

Mensagem por Harika em 01.04.17 14:24

Muito obrigada, ficou perfeito Very Happy
avatar
Harika
Iniciante
Iniciante

Feminino Mensagens : 2
Data de inscrição : 15/08/2016
Localização : Curitiba

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazer a tela do jogo tremer

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum