O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Alinhamento de Pictures Avançado

Iniciado por Ludo, 06/11/2015 às 10:05

06/11/2015 às 10:05 Última edição: 06/11/2015 às 10:22 por Ludovic
Advanced Picture Alignment
Por Ludovic

Introdução

Este plugin que era originalmente para VX Ace, permite mostrar pictures com mais 7 opções de alinhamento por padrão são apenas duas:"Superior-Esquerda" e "Centro"

Como Funciona?

Voce pode usar o comando mostrar imagens normalmente por eventos como se nao houvesse nenhum plugin aqui.
No entanto quando quiser usar alinhamento diferente, basta usar o comando a seguir pelo call script

$gameScreen.showPicture(num, "nome", al, X, Y, L, A, op, b)
num   = Numero da picture
nome  = Nome do arquivo de imagem (sem extensao e entre aspas)
al    = Alinhamento (0 a 8)(Ver lista abaixo)
X, Y  = Coordenadas de exibição
L, A  = Porcentagem da Largura e Altura
op    = Opacidade (transparência)(0 a 255)
b     = Modo de blend (mistura) (0 normal e 1 Adicionar)

O mesmo vale para o comando mover imagem:
$gameScreen.movePicture(num, al, X, Y, L, A, op, b, t)
t     = Tempo de duração

É possível ainda rotacionar esta imagem usando a opção de rotação padrão após exibir a imagem no alinhamento desejado.

As opções de alinhamento são:
0 = Superior Esquerda (padrao)
1 = Centro Centro (padrao)
2 = Superior Direita
3 = Superior Centro
4 = Esqueda Centro
5 = Direita Centro
6 = Inferior Esquerda
7 = Inferior Centro
8 = Inferior Direita

Como Usar?


Opções de alinhamento ilustradas:

Outros Exemplos de Uso




Correções

Caso encontre algum erro ou deseje um tipo de alinhamento a seu gosto me informe aqui que eu providenciarei um meio para melhor atendê-los.




//=============================================================================
// AlignPicture.js
//=============================================================================

/*:
 * @plugindesc Mais opcoes de alinhamento (Veja Instucoes)
 * @author Ludovic
 *
 * @help Voce pode usar o mostrar imagens normalmente por eventos como se nao 
houvesse nenhum plugin aqui. No entanto quando quiser usar alinhamento
diferente, basta usar o comando a seguir pelo call script

$gameScreen.showPicture(num, "nome", al, X, Y, %X, %Y, op, b)
num  = Numero da picture
nome = Nome do arquivo de imagem (sem extensao e entre aspas)
al   = Alinhamento
X e Y= Coordenadas de exibicao
%X,%Y= Porcentagem do tamanho
op   = Opacidade (transparencia)(0 a 255)
b    = Modo de blend (mistura) (0 normal e 1 Adicionar)

As opcoes de alinhamento sao:
0 = Superior Esquerda (padrao)
1 = Centro Centro (padrao)
2 = Superior Direita
3 = Superior Centro
4 = Esqueda Centro
5 = Direita Centro
6 = Inferior Esquerda
7 = Inferior Centro
8 = Inferior Direita
 */

Sprite_Picture.prototype.updateOrigin = function() {
    var picture = this.picture();
    
    if (picture.origin() === 0) {
        this.anchor.x = 0;
        this.anchor.y = 0;
    }    

    if (picture.origin() === 1) {
        this.anchor.x = 0.5;
        this.anchor.y = 0.5;
    }

    if (picture.origin() === 2) {
        this.anchor.x = 1;
        this.anchor.y = 0;
    }

    if (picture.origin() === 3) {
        this.anchor.x = 0.5;
        this.anchor.y = 0;
    }

    if (picture.origin() === 4) {
        this.anchor.x = 0;
        this.anchor.y = 0.5;
    }

    if (picture.origin() === 5) {
        this.anchor.x = 1;
        this.anchor.y = 0.5;
    }

    if (picture.origin() === 6) {
        this.anchor.x = 0;
        this.anchor.y = 1;
    }

    if (picture.origin() === 7) {
        this.anchor.x = 0.5;
        this.anchor.y = 1;
    }

    if (picture.origin() === 8) {
        this.anchor.x = 1;
        this.anchor.y = 1;
    }

};
// editando

Sprite_Picture.prototype.updatePosition = function() {
    var picture = this.picture();
    this.x = Math.floor(picture.x());
    this.y = Math.floor(picture.y());
};

Sprite_Picture.prototype.updateScale = function() {
    var picture = this.picture();
    this.scale.x = picture.scaleX() / 100;
    this.scale.y = picture.scaleY() / 100;
};

Sprite_Picture.prototype.updateTone = function() {
    var picture = this.picture();
    if (picture.tone()) {
        this.setColorTone(picture.tone());
    } else {
        this.setColorTone([0, 0, 0, 0]);
    }
};

Sprite_Picture.prototype.updateOther = function() {
    var picture = this.picture();
    this.opacity = picture.opacity();
    this.blendMode = picture.blendMode();
    this.rotation = picture.angle() * Math.PI / 180;
};

Sprite_Picture.prototype.loadBitmap = function() {
    this.bitmap = ImageManager.loadPicture(this._pictureName);
};


Clique e conheça o meu canal - Canal RPG Maker Zone