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
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08

» 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


[Resolvido]Vestuario!

5 participantes

Ir para baixo

[Resolvido]Vestuario! Empty [Resolvido]Vestuario!

Mensagem por Witen Qui 14 Jun 2012, 19:39

Bom minha duvida é simples ( Eu acho!), Como fazer trés spriters ( Ou mais) abrirem no mesmo objeto?

Aguardando respostas lendo jornal

Edit:

Tive uma ideia, que tal fazer uma objeto para cada parte do corpo do player, é as vestes de cada parte do corpo ser controladas por globais, EX:
Código:
if global.perna=0{
sprite_index=spr_perna
if global.lado=0{
image_single = 0}}

Global.perna são os tipos de perna que o usuário pode vestir
Global.lado são as direções que o player esta

Cada parte do corpo tem 6 spriters de frente, lado, de costas, inclinado frente é atras...

Mas o grande problema seria fazer com que cada parte do corpo acompanhasse a outra na posição certa =/


Última edição por Witen em Seg 18 Jun 2012, 09:14, editado 1 vez(es)
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Super Maker Qui 14 Jun 2012, 21:04

Tem uma outra opção pra um só objeto.
Create:
Código:
braco=spr_braco;
perna=spr_perna;
Draw:
Código:
draw_sprite(braco,image_index,obj_jogador.x,obj_jogador.y);
draw_sprite(braco,image_index,obj_jogador.x,obj_jogador.y);
Super Maker
Super Maker

Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Witen Qui 14 Jun 2012, 21:22

Um interessante...

draw_sprite(sprite,subima,x,y);

Essa função pode ajudar...

Mas...( Esse mas "Fia da mãe" tende a atrapalhar) nas posições o seu código seguira o objeto mas não sua posição certa, o sprite irar ficar louco( perna na cabeça braço na barriga). E se eu trocasse x,y para definir a posição iria definir a posição da room ou da distancia de cada objeto?
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Super Maker Qui 14 Jun 2012, 21:31

O que eu fiz foi te dar a ideia de usar esse sistema, o X e Y você é quem vai acertar no corpo do jogador.
Como essas sprites tem que seguir o jogador é melhor usar o "jogado.posição" e como não da pra usar depth em um só objeto. Você pode trocar quando precizar as sprites do braço direito com esquerdo e o mesmo digo das pernas.
Super Maker
Super Maker

Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Witen Qui 14 Jun 2012, 21:46

jogador.posição

Boa ideia! Se eu estiver certo os spriters seguirão o player na posição desejada Happy! ainda hoje ou amanha eu testo para ver se esta tudo certo!
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por saim Sex 15 Jun 2012, 08:56

Em jogos em que as posições de cada membro independe das demais (por exemplo, os braços apontam para o mouse enquanto as pernas respondem ao teclado), a idéia do Super Maker é a mais indicada. Você define pontos de âncora pra fixar suas sprites e usa esses valores pra desenhar cada sprite. Exemplo:
create:
Código:
xBracoEsquerdo = -10; yBracoEsquerdo = 0;
xBracoDireito = 10; yBracoDireito = 0;
Draw:
Código:
draw_sprite(spr_tronco, image_index, x, y);
draw_sprite(spr_bracoEsquerdo, image_index, x + xBracoEsquerdo, y + yBracoEsquerdo);
draw_sprite(spr_bracoDireito, image_index, x + xBracoDireito, y + yBracoDireito);
(na verdade, esses casos costumam requerer draw_sprite_ext, mas como exemplo, acho que deu pra entender)

Mas há jogos em que você só quer uma personalização da sprite. Na verdade, as sprites sempre terão as mesmas posições, alterando apenas a cor, o tamanho, o formato de uma armadura... só uns detalhes. Nesses casos, eu recomendaria refazer as sprites, desenhando cada pedaço delas em surfaces e criando as sprites a serem usadas no jogo através do comando sprite_create_from_surface. Isso reduziria seu draw_event e talvez até o trabalho na hora de programar. O custo é alguns instantes de processamento no início do jogo, talvez até alguns segundos numa tela de "loadind", se for uma quantidade absurda de sprites.
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 : [Resolvido]Vestuario! 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

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Witen Sex 15 Jun 2012, 09:11

São na verdade 10 partes:

Código:
global.cabeca=0
global.panturilha=0
global.mao=0
global.olhos=0
global.batata=0
global.pes=0
global.cabelo=0
global.peito=0
global.peitoral=0
global.boca=0

cada parte tem 3 lados...

Isso também estava pensando, criar um global para as cores Happy' c_black, c_blue, etc...
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por saim Sex 15 Jun 2012, 10:18

Witen escreveu:São na verdade 10 partes
Claro que um exemplo é só um exemplo. Se você pegou a idéia, não vai ter dificuldade em extender o raciocínio às demais partes

Witen escreveu:cada parte tem 3 lados...
Como assim?

Witen escreveu:Isso também estava pensando, criar um global para as cores Happy' c_black, c_blue, etc...
Isso é bacana, desde que seja aplicado apenas em parte da sprite (por exemplo, alguns detalhes da armadura). Usar image_blend na imagem inteira me soa como um truque barato. Tenho a impressão que vai soar assim ao jogador, também.
Lembre-se que usar image_blend implica, na verdade, em alterar a cor original, não em colorir a imagem. Assim, uma imagem (ou pedaço de imagem) em tons de cinza funciona perfeitamente com image_blend, ao passo que uma imagem colorida vai ficar estranha.
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 : [Resolvido]Vestuario! 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

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Witen Sex 15 Jun 2012, 10:36

Witen escreveu:
cada parte tem 3 lados...
Como assim?

São na verdade 4 lados de frente, costas, horizontal é horizontal de costas.
As globais irão controlar a posição, lado, cor é tipo...

Quando termina o vestuário vou criar um script para facilitar a vida de quem quer fazer a mesma coisa, por que é bem trabalhoso!
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por PedroX Sex 15 Jun 2012, 10:44

Olha, eu recomendaria você criar um objeto para cada parte.
Por quê? Por causa da simplicidade.

Com objetos, você poderia criar um objeto cabeça. Ele seria o único a ser colocado na room.

Depois, você colocaria no seu Create:

Código:
braco1 = instance_create(x,y, obj_braco1)
braco2 = instance_create(x,y, obj_braco2)
perna1 = instance_create(x,y, obj_perna1)
tronco = instance_create(x, y, tronco)

O resto não será necessário, pois você pode criar várias sub-imagens diferentes para a cabeça, para as pernas, para o tronco, para os braços. Lembrando que o tronco envolve tudo que não é a cabeça (e o pescoço), as pernas e os braços.

Agora você põe no Draw de cada objeto:
Código:
draw_sprite(sprite_index, image_index, x, y)

Conforme você for mudando os sprites, você faz pela cabeça:
Código:
 if clicou_na_onde_muda obj_braco1.image_index = 5;

Lembre-se de colocar image_speed = 0 em cada objeto.

Além disso, para que eles sigam a cabeça, basta por no Step que o x e o y deles é igual ao da cabeça mais um valor relativo.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por saim Sex 15 Jun 2012, 10:58

Trabalhoso é pouco, o serviço braçal envolvido é enorme! Mas acho que, infelizmente, seu script não vai ajudar ninguém. O trabalho maior está em definir quais sprites devem ser separadas e depois, definir cada um dos valores das coordenadas. Isso é diferente pra cada caso, não vejo como criar um script genérico que facilite a vida.

Agora entendi o que você quis (quiz?) dizer com os "lados". Lembre-se de levar em conta, então, que cada "lado" vai ter uma posição diferente. Na hora de programar, isso pode ser facilitado com o uso de arrays
Código:
draw_sprite(spr_bracoDireito[lado], image_index, x + xBracoDireito[lado], y + yBracoDireito[lado]);
mas criar essas arrays dá o mesmo trabalho que definir variáveis específicas.

Ah, enquanto eu escrevia, o Pedrø postou essa mensagem acima. Eu ia dizer que a dificuldade é a mesma, mas depois me lembrei de um detalhe: colisões! Pras colisões serem precisas, você precisa de uma mask mutável. Pra ter uma mask que acompanha a movimentação de cada parte do jogador, você realmente precisa de um objeto com sprite_index pra cada membro.
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 : [Resolvido]Vestuario! 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

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Witen Sex 15 Jun 2012, 11:20

Trabalhoso é pouco, o serviço braçal envolvido é enorme! Mas acho que, infelizmente, seu script não vai ajudar ninguém. O trabalho maior está em definir quais sprites devem ser separadas e depois, definir cada um dos valores das coordenadas. Isso é diferente pra cada caso, não vejo como criar um script genérico que facilite a vida.
É verdade! um script não iria ajudar mas uma engine, sim!
Agora entendi o que você quis (quiz?) dizer com os "lados". Lembre-se de levar em conta, então, que cada "lado" vai ter uma posição diferente. Na hora de programar, isso pode ser facilitado com o uso de arrays
CÓDIGO:
draw_sprite(spr_bracoDireito[lado], image_index, x + xBracoDireito[lado], y + yBracoDireito[lado]);
mas criar essas arrays dá o mesmo trabalho que definir variáveis específicas.

Nem acro trabalhoso é sim demora demais '-'. vou ter que sair pra escola agora de noite eu faço.

Ah, enquanto eu escrevia, o Pedrø postou essa mensagem acima. Eu ia dizer que a dificuldade é a mesma, mas depois me lembrei de um detalhe: colisões! Pras colisões serem precisas, você precisa de uma mask mutável. Pra ter uma mask que acompanha a movimentação de cada parte do jogador, você realmente precisa de um objeto com sprite_index pra cada membro.

Agora que vi com vários objetos não da! talvez eu resolva quando voltar da escola fui!
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por saim Sex 15 Jun 2012, 14:05

Witen escreveu:Agora que vi com vários objetos não da!
Dar, dá. É uma questão de COMO você quer fazer, o resultado que você espera. É aquela conversa que eu falei antes: se os membros do personagem podem se comportar de forma diferente, aí o melhor sem dúvida é tratar cada membro individualmente - seja desenhando eles a partir do mesmo objeto, seja fazendo objetos individuais. A meu ver, criar objetos individuais te dá essa vantagem das collision_masks serem separadas, mais nada. O resto, acho mais fácil de operar a partir de um objeto só; você pode até usar comandos como
Código:
obj_bracoEsquerdo.image_angle = point_direction(obj_bracoEsquerdo.x, obj_bracoEsquerdo.y, mouse_x, mouse_y);
isso pode ser colocado em qualquer objeto.



Agora, se o que você quer é simplesmente deixar o jogador personalizar um capacete, por exemplo, é mais fácil criar o conjunto de sprites do personagem logo na inicialização do jogo. Você faz uma surface limpa pra isso, depois vai desenhando cada uma das sprites, cria uma sprite pra ser o jogador completo. Depois limpa a surface, desenha todas as sprites de novo, cria o segundo image_index daquela mesma sprite. Repita o processo pra cada sprite do jogador - andando de lado, atacando de frente, defendendo de costas, tudo - e grava essas sprites. Pode ser como imagem mesmo (pra agilizar o carregamento da próxima vez que o jogador for jogar) ou só como variáveis pra serem chamadas durante o jogo (o que te obriga a repetir o processo da próxima vez que o jogador for jogar).

Se achar que vale a pena, você pode NÃO criar sprite nenhuma e só criá-las à medida que elas forem necessárias. A cada mudança de sprite, você verifica se a sprite existe e, só se não existir, ela passa pelo processo de ser criada. Se for uma quantidade absurda de sprites (não uma quantidade absurda de combinações possíveis) isso pode valer a pena.

Lembre-se que criar sprites e surfaces requer um pouco mais de responsabilidade. Lembre-se de deletar as surfaces quando elas não tiverem mais utilidade (quando você já tiver criado as sprites) e o mesmo com as sprites (quando o jogador alterar o personagem, por exemplo).
Atribuir uma nova sprite a uma variável NÃO É o mesmo que deletar a sprite.
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 : [Resolvido]Vestuario! 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

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Witen Sex 15 Jun 2012, 18:45

Ah! só fauta isso pra concluir a versão beta do Smadol é der repente da esse erro '-'
___________________________________________
ERROR in
action number 2
of Draw Event
for object obj_player:

Trying to draw non-existing sprite.

Eu já desenhei os spriters o que a de errado!

Estou usando esse códigos no player:

Create:
Código:
//vestes
global.cabeca=0
global.panturilha=0
global.mao=0
global.olhos=0
global.batata=0
global.pes=0
global.cabelo=0
global.peito=0
global.peitoral=0
global.boca=0
global.cores=0

Step:
Código:
//vestes

//Cabeça
global.cabeca=0{global.cabeca=m_cabeca}
//Panturilha
global.panturilha=0{global.panturilha=m_panturilha}
//Mão
global.mao=0{global.mao=m_mao}
//Olhos
global.olhos=0{global.olhos=m_olho}
//Batata
global.batata=0{global.batata=m_batata}
//Pés
global.pes=0{global.pes=m_pulso}
//Cabelo
global.cabelo=0{global.cabelo=m_cabeca}
//Peito
global.peito=0{global.peito=m_peitoral}
//Peitoral
global.peitoral=0{global.peitoral=m_peitoral}
//Boca
global.boca=0{global.boca=m_boca}
//Cores
global.cores=0{global.cores=c_black}
Draw:
Código:
draw_sprite(global.cabeca,image_index,30,0);
draw_sprite(global.panturilha,image_index,5,100);
draw_sprite(global.mao,image_index,x,y);
draw_sprite(global.olhos,image_index,x,y);
draw_sprite(global.batata,image_index,obj_player.x,obj_player.y);
draw_sprite(global.pes,image_index,obj_player.x,obj_player.y);
draw_sprite(global.cabelo,image_index,obj_player.x,obj_player.y);
draw_sprite(global.peito,image_index,obj_player.x,obj_player.y);
draw_sprite(global.peitoral,image_index,obj_player.x,obj_player.y);
draw_sprite(global.boca,image_index,obj_player.x,obj_player.y);
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por saim Seg 18 Jun 2012, 08:35

O draw acontece antes do step. Como você declarou que as sprites todas são "0", não deve existir uma sprite com o índice 0.
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 : [Resolvido]Vestuario! 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

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por luiz_eldorado Seg 18 Jun 2012, 08:48

saim escreveu:O draw acontece antes do step. Como você declarou que as sprites todas são "0", não deve existir uma sprite com o índice 0.
Não... não pode ser! Isto está no manual:
Manual escreveu:In some situation it is important to understand the order in which Game Maker processes the events. This is as follows:

Begin step events
Alarm events
Keyboard, Key press, and Key release events
Mouse events
Normal step events
(now all instances are set to their new positions)
Collision events
End step events
Draw events
Como podem ver, o Draw é sempre o ultimo à ser executado, A MENOS que seja chamado pelo event_perform() ou screen_redraw(). Esse último executa o Draw de TODOS os objetos, não só do atual. Talvez esse seja o problema.


Última edição por luiz_eldorado em Seg 18 Jun 2012, 08:58, editado 2 vez(es) (Motivo da edição : 1-Já ia me esquecendo do "Até mais!"...; 2-Quer saber? Não vou mais usar o "Até mais!", já ficou chato. Não sei, me deu uma vontade de não usar...)
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 : [Resolvido]Vestuario! 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

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por Witen Seg 18 Jun 2012, 09:13

saim escreveu:O draw acontece antes do step. Como você declarou que as sprites todas são "0", não deve existir uma sprite com o índice 0.

São todas 0 mas as globais são diferentes... podem fechar o tópico!
Witen
Witen

Games Ranking : Sem avaliações

Data de inscrição : 23/05/2012
Reputação : 36
Número de Mensagens : 515
Prêmios : [Resolvido]Vestuario! Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://www.wibix.webs.com

Ir para o topo Ir para baixo

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

Mensagem por saim Seg 18 Jun 2012, 09:43

@luiz_eldorado: embora essa ordem do manual esteja correta, ela não poderia ser mais incompleta. Existem dezenas de eventos que não estão listados e um deles é bem comum: o create event. Eu já vi uma lista bem mais completa (feita por membros da GMC) que precisava de algumas páginas pra ser impressa - e ainda assim omitia alguns eventos.
Depois, perdi essa lista e nunca mais encontrei. Se alguém souber do que se trata, por favor me mande um link, porque ela é bem útil. Até alguém apresentar uma lista com TODOS os eventos, esse é um assunto pra horas.

Por experiência própria, eu sei que variáveis declaradas no step não serão reconhecidas em draw. Quer dizer, elas serão reconhecidas se eu ignorar o erro que aparece no primeiro step. Supus que fosse o mesmo problema que o Witen estivesse experimentando. Isso me leva a crer que o create event acontece, depois o primeiro draw event, e depois o loop apresentado no manual. Isso manteria o que o manual apresenta como verdadeiro, ou pelo menos MEIO verdadeiro, já que num loop infinito, não existe PRIMEIRO nem ÚLTIMO evento, apenas uma ordem em que eles ocorrem.

Eu já percebi que quando eu escrevo a respeito de dados técnicos, tenho a tendência de soar arrogante. Espero que isso não tenha acontecido nessa mensagem, mas se aconteceu, peço desculpas. Minha intenção é só colocar um pouco mais de informação do que o manual nos dá. O assunto é interessante demais pra eu deixar passar em branco.
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 : [Resolvido]Vestuario! 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

[Resolvido]Vestuario! Empty Re: [Resolvido]Vestuario!

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