Conectar-se

Esqueci minha senha

Últimos assuntos
» colisão de queda após outra colisão dando problema
Ontem à(s) 20:18 por Willy

» [Duvida] O que aprender
Seg 26 Jun 2017, 15:32 por Markituh

» BUILD FAILED: Cannot find BUILD.xml
Seg 26 Jun 2017, 14:50 por ReisBlender

» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Jogo Dengue HTML
Seg 30 Nov 2015, 16:17 por guga

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Ordenar variavel em ordem decrescente
Sex 28 Ago 2015, 21:09 por Kodained

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Problema com Colisão
Qui 27 Ago 2015, 12:30 por The_Game

» Quem quer Uma Engine, e de Quê?
Qui 27 Ago 2015, 09:22 por theguitarmester

» [RESOLV]Como adicionar 2 objetos na mesma posição?
Qua 26 Ago 2015, 11:38 por Bhryenno Kelvyn Carlson

» Sistema de porta!!!
Ter 25 Ago 2015, 21:29 por theguitarmester

» Venda de objetos em Inventário - Multiplicado
Seg 24 Ago 2015, 18:33 por AG Hydra

» Atirar na direção certa
Seg 24 Ago 2015, 09:03 por theguitarmester

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Problemas na compilação android
Dom 23 Ago 2015, 23:43 por Zero.

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Como estabilizar um som
Sab 22 Ago 2015, 19:03 por Isquilo_Roedor

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» Sobre instance Creation Code
Sab 22 Ago 2015, 08:39 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» Como fazer um temporizador
Sex 21 Ago 2015, 19:02 por Isquilo_Roedor

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

Quem está conectado
22 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 21 Visitantes

Markituh

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36

[PEDIDO] engine reconhecer resolução do monitor

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

[PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 14:14

qual é o segredo dos jogos fodões que reconhecem a resolução do monitor e redimensiona a resolução do jogo para a resolução do monitor, gostaria de uma engine definitiva que reconhecesse a resolução do monitor e saber também em qual dimensões universais devem ser feitos os background's nos editorer de imagens, gostaria de uma engine assim pra padronizar tds aspectos visuais do jogo pra quando chegar no meio do jogo e começar a testar em outros pc's não me decepcionar com a imagem esticada tonto

VLW

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por saim em Sex 09 Nov 2012, 15:10

Taí uma pergunta que vale ouro... Eu já te falei que você só faz pergunta interessante, né?

Uma engine definitiva, eu acho difícil de conseguir. O que eu faço quando quero um jogo em tela cheia é fazer toda a programação PROPORCIONAL à tela. É meio chato, mas você aos poucos se conforma a fazer conta pra toda e qualquer posição e tamanho. Como essas contas normalmente ficam no create event (se não for no game start), não atrapalham muito a performance.

Mas hoje eu estou num clima de exemplos. Dessa vez, não vai ser o Mario, vamos pensar na HUD do Baldur's Gate. Sim, eu sou velho.
Custei a arranjar um site com uma imagem que não fosse bloqueada aqui...

Tudo o que eu vou falar daqui pra frente é interpretação minha, sem nenhum fundamento em pesquisa, ok?

Note que há 6 espaços pra avatares no direita, além de um bocado de outras informações. Vou focar em colocar os avatares. Eu me lembro que eu podia até importar uma foto minha nesse lugar, o jogo era ilimitado!
Ilimitado? Não. A foto tinha que ter dimensões fixas. Se não tivesse, o jogo perguntava se era pra esticar a foto, encurtar, cortar as rebarbas ou preencher o espaço restante com alguma cor à escolha (não era ilimitado, mas era muito bom!). Isso tudo pra deixar a sprite criada no tamanho certo pra encaixar na HUD. Essa dimensão era calculada no create. As dimensões da tela são facilmente obtidas com as funções display_get_width/height. De posse da altura disponível e do número de retângulos a encaixar ali, a altura de cada retângulo será
altura disponível / número de retângulos
E se a largura for proporcional, ela é igual à altura multiplicada por um valor constante
largura = altura * proporção
Aí, a posição (em Y) de cada retângulo é definida como
Código:
posY = view_yview[0] + numero_do_retangulo * altura_calculada;
numero_do_retangulo variando de 0 a 5
E a posição (em X) será
Código:
posX = view_xview[0] + view_wview[0] - largura_calculada;
beirada da view + largura dela - espaço do retângulo
Claro que o tamanho da view também foi calculado na instalação.

E assim vai. Se tivermos bordas, temos que considerá-las, podemos definir um espaço máximo e mínimo pras figuras ocuparem, permitindo espaços em branco, enfim, podemos fazer um monte de coisas. O ponto importante é que nenhum número foi escrito ali, a não ser o número de retângulos e a proporção altura/largura. Todo o resto do posicionamento do jogo é definido por cálculos de proporção.
Aliás, eu me lembro de instalar o jogo num monitor mais widescreen que o meu e a tela aumentou, sem variar a proporção das imagens, ou seja, a view realmente passou a abranger uma área maior do jogo.


Ah, mas não precisamos realizar esses cálculos toda vez que formos rodar o jogo. Podemos inicializar o jogo assim: procura-se um arquivo com as proporções já escritas, pra gente não ter que calcular. Se ele não existir, lascou, vambora calcular tudo. Armazene tudo em variáveis. No final dos cálculos, ESCREVA o arquivo que procuramos antes de fazer os cálculos, aí na próxima vez que o jogo rodar, ele estará lá. E, ao instalar o mesmo jogo em outra máquina, ele ainda não bai existir, permitindo que o cálculo seja feito de novo.
avatar
saim

Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por superrafao em Sex 09 Nov 2012, 15:30

LOL Oh my God! It is very cool! Oh meu Deus! Isso e muito legal!
Isso vai servir muito para o jogo que estou fazendo, ele esta demorando por conta de mim esta procurando coisas desse tipo, e etc!
Vou usar isso para o inventario, etc...
Obrigado, gostei disso! Happy
avatar
superrafao

Data de inscrição : 18/08/2010
Número de Mensagens : 414
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 16:15

saim manow ótimo texto, mais se vc poder fomatar um exemplo em forma de gmk seria muito apreciado, eu entendi sua metodologia, mais não saberei aplica-la estou em fase de aprendizado, tem coisas que pego facilmente e outras não, essa é uma das que não entra na minha cabeça na teoria hehe, porem ótima explicação vlw XD

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por superrafao em Sex 09 Nov 2012, 16:17

Desculpe intrometer!
Mas você ja estudou surface Mina do Rock?
avatar
superrafao

Data de inscrição : 18/08/2010
Número de Mensagens : 414
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 16:26

superrafao não não estudei nem sei o que é.. rsss
ei superrafao caso vc possa fazer o exemplo agradeço, o saim já deu sua explicação não quero ser inconveniente e ficar enchendo o saco sendo que ele já deu a resposta e eu não consegui desifrar
VLW

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por superrafao em Sex 09 Nov 2012, 16:49

Mina do Rock escreveu:superrafao não não estudei nem sei o que é.. rsss
ei superrafao caso vc possa fazer o exemplo agradeço, o saim já deu sua explicação não quero ser inconveniente e ficar enchendo o saco sendo que ele já deu a resposta e eu não consegui desifrar
VLW

Sei não viu?!... Porque se eu fazer e você não entender? =/
Vou ver aqui, vou tentar fazer com comentários, mas depois!
avatar
superrafao

Data de inscrição : 18/08/2010
Número de Mensagens : 414
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por saim em Sex 09 Nov 2012, 17:00

Hmn... um exemplo...
Pode ser feito sim, mas o problema, como eu disse, é que cada caso é um caso. Não dá pra fazer uma engine genérica.
Seguinte, nesse minuto eu estou meio atarefado e tem o prazo do concurso chegando ao final. Não acho que vou deixar 100% do meu tempo dedicado ao concurso, então assim que tiver um tempinho eu crio uma engine que faça isso pra você: desenhe 6 retângulos iguais com cores diferentes, numa proporção fixa em posição constante na tela numa room com view móvel (mas não de tamanho variável, que é mais chato de fazer). Ou, se eu estiver me sentindo mais propenso a mexer nas views, faço de tamanho variável mesmo. Isso custa processamento, claro, mas deixa a coisa mais adaptável.

Depois você me paga com umas músicas.

PS: se até o dia 18 eu não tiver te mandado nada, me cobre por MP. Minha cabeça não anda muito benta.
avatar
saim

Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Kapoty em Sex 09 Nov 2012, 17:03

Me baseando na explicação do Saim, fiz duas engines para você mina do rock e para vocês interessados no assunto, em uma dessas engines eu fiz um exemplo sem pegar a resolução e também sem trocar o tamanho da room, apenas para servir de base para nossos futuros cálculos, já na outra, fiz meus próprios cálculos me baseando na minha outra engine para saber o valor exato de cada quadrado na room, sua largura, altura, distancia entre si e etc.

Não cheguei a comentar a engine, mas estude-a, acho que vocês poderão compreende-la sem os comentário, caso não consigam, é só me pedir que eu farei a engine com os comentários, mesmo achando não muito necessário.

Aqui o link para o download do .rar contendo as duas engines.
avatar
Kapoty

Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por superrafao em Sex 09 Nov 2012, 17:09

Poxa kapoty, podia ter explicado!
Sera que posso ler e explicar e mandar a engine explicada para ela? (se eu entender tambem né?! )
Seria melhor se ela tambem entendesse, caso contrario, ela so vai poder fazer isso copiando o codigo! '-'
avatar
superrafao

Data de inscrição : 18/08/2010
Número de Mensagens : 414
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 17:32

special thanks a: superrafao, saim, Kapoty,

o proposito desse Tópico foi achar a melhor solução para essa situação, eu estava fazendo de outro modo, já tinha visto algumas maneiras tb de se fazer e vou postar aqui uma que foi quase perfeita pra mim, eu estava fazendo do seguinte modo: em

Código:
create event()

wtela=display_get_width()
htela=display_get_height()

em step()

if view_wview!=wtela
or view_hview!=htela
{
view_wview=wtela
view_hview=htela
view_wport=wtela
view_hport=htela

view_hborder=view_wview/2
view_vborder=view_hview/2

room_set_persistent(room, true)
room_goto(room);
}

em room_tart()

room_set_persistent(room, 0)

desse modo eu quase consegui um alinhamento perfeito agora vou testar a engine que o manow kapoty fez baseando na explicação do Saim, mais vamos continuar até td mundo concordar que tal engine conseguiu fazer a função com eficiência ok

VLW


Última edição por Mina do Rock em Sex 09 Nov 2012, 18:40, editado 1 vez(es)

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Kapoty em Sex 09 Nov 2012, 17:59

Bem, vou postar aqui a minha engine com uma pequena explicação, percebi que eu tinha errado um calculo, dentro da engine vocês podem conferir oque eu tinha errado.

http://www.mediafire.com/?bt3r6siix06sml5

Não expliquei o código que está no draw por que basta você comparar esta engine com a outra engine, sem os cálculos de medição da altura e largura da tela, que você já ira entender o por que de cada variável em cada local.
avatar
Kapoty

Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 18:32

Kapoty é só ativar o persistent do obj_pegar_resolução para na prôxima room1 o code continuar valendo ? fiquei com essa duvida XD

VLW

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Kapoty em Sex 09 Nov 2012, 18:37

Mina do Rock escreveu:Kapoty é só ativar o persistent do obj_pegar_resolução para na prôxima room1 o code continuar valendo ? fiquei com essa duvida XD
VLW
Não seria só ativar o persistent, você teria que fazer está modificação :

Código:
if room_exists(room_next(room)) // Caso exista uma próxima room.
{
width=display_get_width()
heigth=display_get_height()
room_set_width(room_next(room),width)
room_set_height(room_next(room),heigth)
}
avatar
Kapoty

Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por superrafao em Sex 09 Nov 2012, 18:39

E, acho que pode ate dar certo Mina do rock!
Eu sei que num tem nada a ver mas...
OFF: você ja fes um sistema complexo ou qualquer outro sistema legal?
Eu fis um sistema de blocos, que eles mesmo escolhe o o sprite que deve ter!
Exemplo!
Eu coloco todos o blocos perto uns dos outros, ai na onde nao tem mais blocos no lado ele usa determinada sprite, se nao tiver em cima, ele usa sprite com grama...
avatar
superrafao

Data de inscrição : 18/08/2010
Número de Mensagens : 414
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 19:06

superrafao

acho que o mais complicado que fiz foi esse da mega sena que a 1º bola é sorteada ai depois a 2º bola é sorteada e se a 2º for igual a 1º bola a 2º bola é sorteada de novo repitindo o processo com as outras 4 bolas, a 6º bola checa se é igual as 5 bolas anteriores, o que mais gostei desse sistema é que eu não sabia por onde começar, não tinha ideia de como ficaria, e derrepente eu terminei kkk

link: https://www.facebook.com/pages/Mega-Sena/360838920666271?sk=app_208195102528120


Kapoty

posta a engine com o code modificado pra quem baixar não perguntar sobre isso
Código:
if room_exists(room_next(room)) // Caso exista uma próxima room.
{
width=display_get_width()
heigth=display_get_height()
room_set_width(room_next(room),width)
room_set_height(room_next(room),heigth)
}

na verdade eu não sei onde inserir Razz

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Kapoty em Sex 09 Nov 2012, 19:25

Mina do Rock escreveu:Kapoty
posta a engine com o code modificado pra quem baixar não perguntar sobre isso
Isso não é necessário.
Mina do Rock escreveu:na verdade eu não sei onde inserir Razz
Sabe o obj_pegar_resolucao ?
Troque o create dele, por esse código.
avatar
Kapoty

Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 19:34

ficou td cinza da uma olhada ai

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Kapoty em Sex 09 Nov 2012, 19:38

Mina do Rock escreveu:ficou td cinza da uma olhada ai
Mina do Rock, aprenda que não é só usar o ctrl+c e o ctrl+v, tente ver o código também.

De cara da para perceber o motivo de estar tudo cinza, perceba que no código que passei, não está presente o código "room_goto_next()", assim você não sai da room "room_pegar_resolucao", que é toda cinza.

Acho que vou ter que passar o código completo :

Código:
if room_exists(room_next(room)) // Caso exista uma próxima room.
{
width=display_get_width()
heigth=display_get_height()
room_set_width(room_next(room),width)
room_set_height(room_next(room),heigth)
if room=room_pegar_resolucao
{room_goto_next()}
}
avatar
Kapoty

Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

Mensagem por Gonzo em Sex 09 Nov 2012, 22:54

Kapoty VLW manow

Gonzo

Data de inscrição : 29/05/2012
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [PEDIDO] engine reconhecer resolução do monitor

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