GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


Velho Fantasma 1: views (parte 1)

4 participantes

Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Velho Fantasma 1: views (parte 1)

Mensagem por saim Sex 19 Out 2012, 20:14

Então eu decidi que quero participar do concurso e bolei um jogo que usa views.
Eu sempre tive problemas com views. Sempre evitei usá-las, mas nunca me conformei com isso.

Bom, pra facilitar minha vida, eu criei um script que deveria programar a room toda, desde que eu controlasse as views manualmente. Ao chamar o script, eu entro com a room a que ele se refere, a largura da room e a altura da room. Mas acontece que eu quero criar uma room que seja duma altura maior que a view.
Eis o script:
Código:
// room com view(room, largura, altura, "objeto")
// define as coordenadas da janela e tamanho da room (argument0), além de criar um objeto

room_set_width(argument0, argument1); room_set_height(argument0, argument2);
var xx, yy;
xx = string((display_get_width() - argument1) / 2);
yy = string(display_get_height() - argument2 - 32);



room_set_code(argument0, '
view_enabled = true;
view_visible[0] = true;
view_xview[0] = 0; view_yview[0] = room_height - ' + string(argument2) + ';
view_xport[0] = 0; view_yport[0] = 0;
view_wview[0] = room_width; view_hview[0] = ' + string(argument2) + '; //mexer com valores?
view_wport[0] = room_width; view_hport[0] = ' + string(argument2) + '; //mexer com valores?
view_angle[0] = 0;
window_set_position(' + xx + ', ' + yy + ');

instance_create(room_width / 2, room_height / 2, ' + argument3 + ');
')
Ah, sim, eu também tenho que entrar com um objeto pra ser criado na room (que é sempre o objControle, que por sua vez cria os demais).

Minha primeira tentativa de ajeitar isso foi mudando o tamanho da room de "argument2" pra "argument2 * 3". A janela do jogo ficou com o triplo do tamanho, claro.
Aí, eu tentei usar as funções "room_set_view" e "room_set_view_enabled", antes da room ser criada (antes de room_set_code). Fiquei com a impressão de que não fez nem cócegas.

Eu desisto. Como faço pra view ser menor que a room, através de um script (que pode definir o creation code da room) a ser rodado antes do jogo começar?

Na parte 2 da pergunta (em tópico a ser criado): minha engine de escuridão está fugindo da janela!!!
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por All-x Sex 19 Out 2012, 20:52

saim, deixa eu ver se eu entendi. Você quer mudar o tamanho da room em tempo real?

Se for isso, só será possível executar códigos de mudança de tamanho da view ou da room, enquanto você estiver em outra room (Esta só teria essa finalidade de mudar o tamanho). Logo você teria que marcar a room desejada como persistente e ficar trocando de uma à outra o tempo todo ou toda vez que usar o comando de mudar de tamanho.

Aimda não entendi muito bem, poderia "explanar" um pouco mais?

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por saim Sex 19 Out 2012, 21:31

Não em tempo real, só mudar, DEFINIR o tamanho dela.
Ela não existe, daí eu crio ("rmPlay = room_add();") e chamo o "script" (que, por enquanto, é um arquivo externo): execute_file(working_directory + "\play.room", rmPlay, larTela, altTela, "objControle");. É nesse arquivo que eu coloco o script. rmPlay é a room, larTela é a largura da view, altTela, a altura e objControle, o objeto que vou criar na room.

Aí eu queria uma room com tamanho fixo, uma largura de uns 300 pixels e uma altura de , digamos, 3000 pixels, numa janela de 300x500 pixels (depois eu procuro as dimensões de um celular real). Era pra view ficar no fundo da room e ir se arrastando pra cima.
Mas está sendo um desaste...
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por luiz_eldorado Sex 19 Out 2012, 23:56

Sinceramente, não entendi quase nada. O que você quer fazer?
Me parece que de algum modo você está centralizando a janela do jogo na tela.
As room são sempre maiores ou iguais aos tamanhos da views, eu acho.
Código:
view_wview[0] = room_width; view_hview[0] = ' + string(argument2) + '; //mexer com valores?
Faz diferença entre room_width e o argument2? Você não seta o room_width como argument2?
Isso era pra ser simples. Vou tentar alguns códigos.

#Edit:
Fiz modifiquei Me baseei no seu script para criar este:
Código:
//views(room,w,h,obj);
//Seta as views de uma room, além de criar um objeto

var fx,fy;
fx=300; fy=3000;

//Tamanho fixo, você quem disse
room_set_width(argument0,fx);
room_set_height(argument0,fy);

//Aqui eu centralizo a tela (ah sei lá!)
var xx,yy;
xx=display_get_width()-(argument1/2);
yy=display_get_height()-(argument2/2);

room_set_view_enabled(argument0,1); //1=true;
room_set_view(argument0,0,1,0,0,argument0,argument1,0,0,300,3000,32,32,-1,-1,-1);

//Em vez de instance_create()
room_instance_add(argument0,room_width/2,room_height/2,argument3);

//Essa não teve jeito xD
room_set_code(argument0,'window_set_position('+xx+','+yy+');');
Como quer que a room seja maior que a view se você seta ela com o mesmo tamanho? Acho que você não está num bom dia...
luiz_eldorado
luiz_eldorado

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 30/07/2011
Reputação : 47
Número de Mensagens : 928
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

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

http://luizpontes.tk/

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por All-x Sáb 20 Out 2012, 00:29

saim, creio que seja a forma como passamos da room atual para a nova room que faz com que isso aconteça. Os argumentos do luiz_eldorado estão perfeitos para uma room adicionada normalmente. Mas para uma room adicionada com room_add() a view não é ativada.

Continuarei tentando aqui...

EDIT: Consegui:

http://sdrv.ms/S4R5rv

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por luiz_eldorado Sáb 20 Out 2012, 09:45

Alex FC escreveu:Os argumentos do luiz_eldorado estão perfeitos para uma room adicionada normalmente. Mas para uma room adicionada com room_add() a view não é ativada.
Por quê? Acho que o room_set_view_enabled faz isso.
Baixei o arquivo. Boa engine, funciona. Vi que você inverteu o tamanho da room com o da view nos argumentos do script. Pensando melhor, assim é o certo.

Agora vamos ver o que o saim tem pra dizer.
luiz_eldorado
luiz_eldorado

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 30/07/2011
Reputação : 47
Número de Mensagens : 928
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

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

http://luizpontes.tk/

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por saim Sáb 20 Out 2012, 10:19

luiz_eldorado escreveu:O que você quer fazer?
Cria uma room, via código, cuja view é menor que a room.
luiz_eldorado escreveu:Me parece que de algum modo você está centralizando a janela do jogo na tela.
Sim! Smile E na parte de baixo.
luiz_eldorado escreveu:As room são sempre maiores ou iguais aos tamanhos da views, eu acho.
Na verdade, não. Teoricamente, não existem limites. Você pode fazer uma room minúscula e esticá-la pra ocupar a view toda, por exemplo (embora eu duvide que alguém vá fazer isso algum dia). Mas isso é teoria, como eu disse, eu sempre me dei mal com as views.
luiz_eldorado escreveu:
Código:
view_wview[0] = room_width; view_hview[0] = ' + string(argument2) + '; //mexer com valores?
Faz diferença entre room_width e o argument2? Você não seta o room_width como argument2?
Não faz diferença. É que eu gosto de usar os arguments só no começo do script, colocando os valores em variáveis com nomes mais intuitivos.
[edit:] Não, faz diferença sim! argument2 é a ALTURA. E eu não usei o room_height porque estava querendo usar a altura da view diferente da altura da room. Achei que tinha colocado o meu script-padrão, mas acho que mantive essa parte modificada.
luiz_eldorado escreveu:Isso era pra ser simples.
Eu que o diga!
[quote="luiz_eldorado"]Me baseei no seu script para criar este[code]Ele tem o mesmo problema que a minha alteração... A janela fica imensa! Mas não é igual, parece que a view fica esticada, de alguma forma.
luiz_eldorado escreveu:Como quer que a room seja maior que a view se você seta ela com o mesmo tamanho? Acho que você não está num bom dia...
saim escreveu:Minha primeira tentativa de ajeitar isso foi mudando o tamanho da room de "argument2" pra "argument2 * 3".
Depois tentei outras alternativas, mas tudo sem sucesso...

Alex FC escreveu:Consegui
PERFEITO!!! Ainda não vi onde estava o erro, vou estudar mais um pouco pra ver se entendo. Acho que ajeitar a view no create da room realmente não é uma boa. Gozado, eu TENTEI usar room_set_view (ver post inicial), devo ter errado os argumentos.

Oops, tenho que correr! Eu ainda tenho o que escrever aqui, mas escrevo depois. Valeu, moçada!!!
Edit: ih, Alguém escreveu enquanto eu digitava. Não dá pra ler agora, tenhoqueirtchau!


Última edição por saim em Sáb 20 Out 2012, 16:50, editado 2 vez(es)
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por All-x Sáb 20 Out 2012, 10:55

Tanto o seu script como o do luiz_eldorado possuiam erros. Vamos começar pelo seu:

view_wview[0] = room_width; view_hview[0] = ' + string(argument2) + '; //mexer com valores?
view_wport[0] = room_width; view_hport[0] = '
+ string(argument2) + '; //mexer com valores?

Creio que você quiz poupar tempo e copiou a primeira linha para segunda, mudando apenas o port e o view.

view_hview[0] é o tamanho da view vertical na room, no caso 500, mas tu colocou o valor do argument2, que no caso é 3000. Logo, a view teria o mesmo tamanho da room. O mesmo acontece com view_hport[0] que é o tamanho da janela no monitor. Logo só troquei os argument2 por 500.

No código do luiz_eldorado (visivelmente parecia certo, mas depois notei o 3000):

room_set_view(argument0,0,1,0,0,argument0,argument1,0,0,300,3000,32,32,-1,-1,-1);

-Primeiro erro é que o argument0 é o ID da room e ele foi colocado em wview que é a largura da view;
-Segundo erro é que no valor de hview (altura da view) está o argument1 que é a largura da room;
-Terceiro erro é que o valor de hport (altura da janela no monitor) está 3000, logo a janela ficaria do tamanho vertical da room;

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por saim Sáb 20 Out 2012, 16:45

Alex FC escreveu:view_wview[0] = room_width; view_hview[0] = ' + string(argument2) + '; //mexer com valores?
view_wport[0] = room_width; view_hport[0] = '
+ string(argument2) + '; //mexer com valores?

Creio que você quiz poupar tempo e copiou a primeira linha para segunda, mudando apenas o port e o view.

view_hview[0] é o tamanho da view vertical na room, no caso 500, mas tu colocou o valor do argument2, que no caso é 3000. Logo, a view teria o mesmo tamanho da room. O mesmo acontece com view_hport[0] que é o tamanho da janela no monitor. Logo só troquei os argument2 por 500.
Não, aquele é um script-padrão que eu usava até ontem (quando percebi que ele não era uma boa...). No teste, eu defini a altura da room como 3 * argument2 (podia ser 6 ou 10, é só um teste). O valor de argument2 era uns 500, mesmo.
Ainda (tipo, "até hoje", não apenas "apesar da sua explicação") não entendo qual a diferença entre view_hview e view_hport.
Por acaso alguém comentou a sua aula e eu dei uma nova olhada nela. Parece que hview é a altura que a view pega da room e hport, a altura que ela ocupa na tela, certo? (essa não é uma pergunte retórica, eu realmente não sei se está certo)
Mas no caso de usarmos duas ou mais views (como pra fazer HUDs, sei lá) o que determina o tamanho da janela do jogo? A maior view_hport, a view_hport[0] (por ser a primeira) ou alguma outra variável?
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por cascavelo Sáb 20 Out 2012, 16:56

Saim, uma boa maneira de você entender a relação entre estas funções é pegar uma figura quaquer e colocar como background em uma room do mesmo tamanho da figura, depois simplesmente vá alterando os valores da view no editor de rooms e executando pra ver o que acontece. Fiz isto até entender o funcionamento de cada função, pra desenvolver pra android tem que dominar completamente o uso de views, é nesta parte que a maioria empaca.
cascavelo
cascavelo

Games Ranking : Nota A

Notas recebidas : A - A - A - A - A -A -C
Data de inscrição : 08/12/2011
Reputação : 71
Número de Mensagens : 1011
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 1

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

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por saim Sáb 20 Out 2012, 19:12

É, essa é uma das coisas que eu tenho programadas no meu caderninho de "quando tiver um tempinho". Mas sempre que tenho um tempinho, acabo gastando ele com coisas inúteis. Quando eu peguei as particles pra valer, acabei entendendo direitinho como funcionam. Tenho que fazer isso com as views, mesmo (e o 3D, e os jogos multiplayer, e as DLLs...).
cascavelo escreveu:pra desenvolver pra android tem que dominar completamente o uso de views
Ih, caramba, achei que fosse só colocar a view do tamanho da tela e pronto! Lascou, vou ter que arrumar (e aproveitar) esse tempinho o mais breve possível!

Moçada, o papo tá ótimo, mas o que eu queria - fazer o código funcionar - eu já consegui. Se os moderadores quiserem, podem trancar. Se não quiserem, podem continuar a conversa (eu ia achar ótimo ter uma aulinha particular sobre views).
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Velho Fantasma 1: views (parte 1) Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Velho Fantasma 1: views (parte 1) Empty Re: Velho Fantasma 1: views (parte 1)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos