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

[Script XP] Picross Minigame

Iniciado por LeonM², 01/02/2013 às 21:18

01/02/2013 às 21:18 Última edição: 30/07/2019 às 01:14 por Victor Sena
[box class=titlebg2]
Picross criado por Trickster
[/box]
[info float=left border=#666600]Informações sobre o sistema

Nome: Picross
Autor: Trickster

Incompatibilidade: Baixa
Lag gerado: Quase nulo
Customizável: Sim
Requer Recursos Extras: Algumas imagens incluídas na demo
Facilidade de uso: Complicado
[/info]
[box class=titlebg2]Explicação:[/box]
[box class=catbg3]Achei este script no fórum SavePoint enquanto eu dava umas olhadas nos scripts de lá.
Este script é um minigame complicado baseado em sudoku, existem alguns jogos que usam este sistema como puzzle dentre eles tem um jogo do Mario chamado Mario Picross.
O puzzle consiste em formar uma imagem usando lógica com números removendo pequenos blocos, como vocês poderão ver no vídeo a seguir que gravei, e como não sou burro só fiz os níveis mais fáceis pois é realmente complicado os mais difíceis.
O script foi desenvolvido pelo membro Trickster da comunidade SavePoint.[/box]
[box class=titlebg2]Vídeo:[/box]
[box class=catbg3]
[/box]
[box class=titlebg2]Download:[/box]
[box class=button_submit]http://trickster.wg2140.com/Demos/Picross.rar[/box]
[box class=titlebg2]Como usar:[/box]
[box class=catbg3]É só chamar o código abaixo:
$scene = Picross::Scenes::Scene_Picross.new(id, type, time[,switch_id, back])

id = id do puzzle que será lido(tutorial de como configurar novos puzzles irei fazer em breve ou não)
type = tipo do puzzle(small, medium, large ou huge, respectivamente: pequeno, médio, grande e gigante.)
time =  Tempo máximo para resolver o puzzle.
switch_id = ativa uma switch caso conclua o o puzzle, esta parte é opcional
back =  algum fundo que queira usar(um battleback para ser mais exato).
Exemplo:
$scene = Picross::Scenes::Scene_Picross.new(2,'small', 600, 1, "001-Forest01")
Vai chamar um puzzle de id 2, pequeno, com tempo de 10 minutos para resolução, a switch 1 será ativa e o fundo é o battleback 001-Forest01[/box]
[box class=titlebg2]Tutorial de Configuração[/box]
[box class=catbg3]A configuração é bem simples, vou demonstrar:
No script Picross::Puzzles, vão para uma das seguintes linhas, cada uma representa respectivamente o nível de dificuldade(tamanho do desenho):
Linha 67 = small(Nível facíl, quadrado de 5x5)
Linha 89 = medium(Nível médio, quadrado de 10x10)
Linha 171 = large(Nível difícil, quadrado de 15x15)
Linha 199 = huge(Nível "impossível",quadrado de 20x20)
É claro o número da linha caso o script ainda seja padrão, original.
Existem duas formas de criar um novo puzzle, configurando uma array ou usando uma imagem, neste tutorial irei ensinar a configurar uma array, e dar uma breve explicação do uso de imagem.
No final do script tem os templates de cada configuração, porem irei usar um exemplo de algo já configurado.
Vejam este exemplo retirado do script:
        when 2
          # Get Puzzle and Name
          puzzle = [
          [0,0,1,0,0],
          [0,0,0,0,0],
          [1,1,1,1,1],
          [0,0,0,0,0],
          [0,0,1,0,0]]
          name = 'Division'
          final_pic = Color.new(0,0,255)

Este código ira fazer com que o jogador faça um sinal de divisão, como podem ver os 0 são os blocos que devem permanecer e os 1 são os blocos que devem ser removidos, o name é a variável que define o nome que ira aparecer abaixo quando o puzzle for concluído, o final_pic é a var responsável pela imagem final, existem 3 formas de configurar está variável, irei explicar mais no final.
Agora irei por um exemplo de um que eu configurei:
        when 3
          # Get Puzzle and Name
          puzzle = [
          [1,0,1,0,1],
          [0,1,0,1,0],
          [1,0,1,0,1],
          [0,1,0,1,0],
          [1,0,1,0,1]]
          name = 'Chess'
          final_pic = Color.new(255,255,255) 

Neste o jogador ira ter que deixar diagonalmente fileiras com e sem blocos, isto é quase um tabuleiro de xadrez,por isso que coloquei nome Chess, pois é para ser um tabuleiro de xadrez, o final_pic irei explicar depois,como também podem ver tive de alterar o when para when 3, pois este puzzle fica abaixo do exemplo anterior, no caso o exemplo que eu fiz deve ir abaixo do final_pic do exemplo 1 e acima do end.
Os medium, large e huge são a mesma coisa, só em vez de 5x5 são 10x10,15x15 e 20x20 respectivamente, isto é:
[
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0]]
---------
[
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
------
[
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]

Gigante o 20x20 não? por isso que tem o método de imagem, que é simples, só deem uma olhada na pasta:Graphics\Pictures\Picross procurem la pela imagem Sword, ela tem exatamente 20x20 pixels, isto é cada pixel preenchido pela cor preta é os blocos que devem ser retirados, e os que estão em transparente são os que devem permanecer, para usar o método de imagem é simples:
puzzle = load_puzzle_bitmap('Nome da imagem', type)

Não mudem o type, só mudem o 'Nome da imagem', mantendo os '.
Agora irei explicar os três tipos de final_pic, e explicar o que é o final_pic.
Ao completar o puzzle ira aparecer uma versão menor, esta versão é configurada no final-pic, os três métodos são: Cor, Array e Imagem.
O modo cor ira transformar todos os blocos removidos numa unica cor, isto é caso eu configure para aparecer a cor azul, os blocos que forem retirados(aqueles configurados com 1 durante a primeira parte do processo) irão aparecer no final com cor azul, o código usado para isso é esse:
final_pic = Color.new(R,G,B)

Onde o R significa o valor vermelho de 0 a 255, o G valor verde de 0 a 255 e B valor azul de 0 a 255, para criar cor amarela deve-se por o valor assim (255,255,0).
O método array é o mais trabalhado pois ele pode ter uma configuração melhor porém é demorada:
          [0,0,0,0,0,0,0,0,0,0],
          [0,8,8,8,8,8,8,8,8,0],
          [0,8,2,2,2,2,2,2,8,0],
          [0,8,2,2,3,3,2,2,8,0],
          [0,8,3,3,8,8,3,3,8,0],
          [0,8,C,C,3,3,C,C,8,0],
          [0,8,C,C,C,C,C,C,8,0],
          [0,8,C,C,C,C,C,C,8,0],
          [0,8,8,8,8,8,8,8,8,0],
          [0,0,0,0,0,0,0,0,0,0]]

Este exemplo é usado no puzzle 3 do medium, cada número representa uma cor, a letra eu sinceramente não sei o que é, tem um trecho no script que nos introduz as cores de alguns números:
          #0: Clear 1: Red  2: Blue 3:Yellow 4: Purple 
          #5:Orange 6:Green 7:White 8: Black
          #+10 for darker - 10 for lighter (see Constants)

O método de imagem é o mais fácil, e melhor, o código de configuração é este:
final_pic = "Nome da imagem"

É só trocar o "Nome da imagem" pelo nome da image, mantendo as aspas, a imagem deve estar na pasta:
Graphics/Pictures/Picross
Bom é isso o tutorial, se tiver alguma duvida não exite em perguntar.
[/box]
[box class=titlebg2]Créditos:[/box]
[box class=catbg3]Trickster por criar;
Raziel por dar uma ajuda-lo(a);
E a mim por trazer para este fórum e fazer o vídeo e também por criar o tutorial.[/box]

Mano eu vi o video e achei simplesmente f*da, sério, eu vou baixar e ver como é jogando isso, parece ser um jogo muito MUITO interessante. Uma bela achada Leon, mesmo que está apenas disponibilizando, só gravar e traduzir o tópico e talz da trabalho, então parabéns.

Citação de: Raizen online 01/02/2013 às 21:35
Mano eu vi o video e achei simplesmente f*da, sério, eu vou baixar e ver como é jogando isso, parece ser um jogo muito MUITO interessante. Uma bela achada Leon, mesmo que está apenas disponibilizando, só gravar e traduzir o tópico e talz da trabalho, então parabéns.
Não traduzi muita coisa, eu mesmo que montei o tópico, deu mais trabalho a formatação o resto foi fácil :P
Valeu o feedback.

Perdoem pelo DP mas é necessário:
Tutorial de configuração adicionado.