Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» 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
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» 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
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
Criando o nome de uma sprite com variáveis
5 participantes
Página 1 de 1
Criando o nome de uma sprite com variáveis
Atualmente fiquei com um problema: preciso formar o nome de uma sprite usando uma variável+uma coisa escrita. Por exemplo: o nome da variável é player_pulando, mas o nome "player" pode variar, então fiz assim:
exemplodevariavel="player"
sprite_index= string(exemplodevariavel) + "_pulando"
>>Desse jeito não dá certo, pois ambos "player" e "_pulando" estão entre aspas, mas se não houvessem aspas, daria um erro dizendo: unknow variable "_pulando" ou unknow variable "player". O que faço?
exemplodevariavel="player"
sprite_index= string(exemplodevariavel) + "_pulando"
>>Desse jeito não dá certo, pois ambos "player" e "_pulando" estão entre aspas, mas se não houvessem aspas, daria um erro dizendo: unknow variable "_pulando" ou unknow variable "player". O que faço?
rafarubim- Data de inscrição : 20/01/2011
Reputação : 0
Número de Mensagens : 65
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
acredito que com
variable_global_array_set
variable_local_array_set
Nunca usei nenhum deles, mas acho q isso cria variaveis
flw
edit
lol
erro
é isso aki:
variable_local_set
variable_global_set
variable_global_array_set
variable_local_array_set
Nunca usei nenhum deles, mas acho q isso cria variaveis
flw
edit
lol
erro
é isso aki:
variable_local_set
variable_global_set
Tedi Ripper- Games Ranking :
Data de inscrição : 21/11/2010
Reputação : 25
Número de Mensagens : 777
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
sprite_index não serve para dar um nome a sprite...
ela serve para definir a sprite do objeto...
Eu acho que sei o que você quer... vou fazer aqui e edito...
EDITE: Por favo, explique melhor o que vc quer e porque vc quer, para eu entender melhor!!!
ela serve para definir a sprite do objeto...
Eu acho que sei o que você quer... vou fazer aqui e edito...
EDITE: Por favo, explique melhor o que vc quer e porque vc quer, para eu entender melhor!!!
irlansn- Games Ranking :
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Reputação : 5
Número de Mensagens : 482
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
Vou tentar explicar melhor, apesar de ser meio confuso:
No meu jogo há vários tipos de player (mais de 20), com um objeto para cada.
Todos os players tem sprites com nomes parcidos, só mudando o início:
player_esquerda
player_direita
player_pulando
player2_esquerda
player2_direita
player2_pulando
Dessa maneira, ao apertar a tecla esquerda, quero mudar a sprite do player para que ele ande para a esquerda.
Tenho uma variável chamada global.player_atual, que indica qual player é o atual que está sendo usado. Assim, tenho um script que uso no evento left pressed de todos os players. Nesse script está:
direction=180
speed=4
sprite_index= global.player_atual + "_esquerda" //<<
>>>>>>>>Desse modo, se global.player_atual="player5", no código ficaria:
sprite_index="player5_esquerda" //<<
Como faço para juntar a variável global.player_atual com "_esquerda" ou "_direita" ou "_pulando" ?
No meu jogo há vários tipos de player (mais de 20), com um objeto para cada.
Todos os players tem sprites com nomes parcidos, só mudando o início:
player_esquerda
player_direita
player_pulando
player2_esquerda
player2_direita
player2_pulando
Dessa maneira, ao apertar a tecla esquerda, quero mudar a sprite do player para que ele ande para a esquerda.
Tenho uma variável chamada global.player_atual, que indica qual player é o atual que está sendo usado. Assim, tenho um script que uso no evento left pressed de todos os players. Nesse script está:
direction=180
speed=4
sprite_index= global.player_atual + "_esquerda" //<<
>>>>>>>>Desse modo, se global.player_atual="player5", no código ficaria:
sprite_index="player5_esquerda" //<<
Como faço para juntar a variável global.player_atual com "_esquerda" ou "_direita" ou "_pulando" ?
rafarubim- Data de inscrição : 20/01/2011
Reputação : 0
Número de Mensagens : 65
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
Assim:
variable_local_set(string(global.player_atual) + "_pulando",valor)
E se não der certo... Infelizmente não sei o que fazer..
Mas lembre-se: ser um programador exige muita paciência...
Eu mesma já fiz um jogo com mas de 30 personagens... E fiz um por um!!! (Eu fazia um 5 por dia)
variable_local_set(string(global.player_atual) + "_pulando",valor)
E se não der certo... Infelizmente não sei o que fazer..
Mas lembre-se: ser um programador exige muita paciência...
Eu mesma já fiz um jogo com mas de 30 personagens... E fiz um por um!!! (Eu fazia um 5 por dia)
irlansn- Games Ranking :
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Reputação : 5
Número de Mensagens : 482
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
Isso não dá pra fazer. Porque sprite_index é um número, não um texto. Então, o melhor que dá pra fazer é sair testando sprite-por-sprite do jogo e comparar com a string que define o nome da variável. Algo assim:
Usei 1000000 pra passar uma idéia do quanto o processo é lento.
Uma alternativa seria gravar esses textos como constantes globais e armazenar as sprites em arrays 2d. Por exemplo:
E manda, por cima disso:
- Código:
if (tá virado pra direita){
novoNome="player"+"direita"
for(i = 0; i < 1000000; i+=1){ //1000000 é só um número muito grande
if (sprite_exists(i)){
if (sprite_get_name(i)==novoNome){
sprite_index = i;
}
}
}
}
Usei 1000000 pra passar uma idéia do quanto o processo é lento.
Uma alternativa seria gravar esses textos como constantes globais e armazenar as sprites em arrays 2d. Por exemplo:
- Código:
andandoEsquerda = 0
andandoDireita = 1
correndoEsquerda = 2
correndoDireita = 3
player1 = 0
player2 = 1
sprite[0, 0]=sprite_do_player1_andando_pra_esquerda
sprite[0, 1]=sprite_do_player1_andando_pra_direita
sprite[0, 2]=sprite_do_player1_correndo_pra_esquerda
sprite[0, 3]=sprite_do_player1_correndo_pra_direita
sprite[1, 0]=sprite_do_player2_andando_pra_esquerda
sprite[1, 1]=sprite_do_player2_andando_pra_direita
sprite[1, 2]=sprite_do_player2_correndo_pra_esquerda
sprite[1, 3]=sprite_do_player2_correndo_pra_direita
jogador = player1 //0
situação = andandoDireita//1
E manda, por cima disso:
- Código:
sprite_index = sprite[jogador, situação]
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
saim escreveu:Isso não dá pra fazer. Porque sprite_index é um número, não um texto. Então, o melhor que dá pra fazer é sair testando sprite-por-sprite do jogo e comparar com a string que define o nome da variável. Algo assim:Dá pra substituir o 1000000 pelo maior índice de sprite do jogo, ou seja o índice da última sprite que você criou, que não é necessariamente o número de sprites do jogo.
- Código:
if (tá virado pra direita){
novoNome="player"+"direita"
for(i = 0; i < 1000000; i+=1){ //1000000 é só um número muito grande
if (sprite_exists(i)){
if (sprite_get_name(i)==novoNome){
sprite_index = i;
}
}
}
}
Usei 1000000 pra passar uma idéia do quanto o processo é lento.
Mesmo não entendendo como usar o "for" eu entendi seu código xD realmente deve dar certo, mas como pode existir até 1000000 de sprites isso não deixa o jogo mais lento n? Até porque usarei isso pra esquerda, pra direira, pra cima,pra baixo e quando o player ataca...
rafarubim- Data de inscrição : 20/01/2011
Reputação : 0
Número de Mensagens : 65
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
saim escreveu:Usei 1000000 pra passar uma idéia do quanto o processo é lento.
Sim, é um processo bem lento, por isso não recomendo. Agora, dê uma olhada no post anterior (editado) e veja se gosta da idéia alternativa.rafarubim escreveu:mas como pode existir até 1000000 de sprites isso não deixa o jogo mais lento n?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
Hum, legal, eu não sabia disso, mas o ruim é que o código fica muito grande,já que farei muitos players... Mas valeu, já vi que pelo jeito não tem mais maneiras e terei que fazer do jeito difícil...
rafarubim- Data de inscrição : 20/01/2011
Reputação : 0
Número de Mensagens : 65
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
tente o seguinte:
- Código:
execute_string(string(global.player_atual)+"_esquerda");
- Código:
execute_string(global.player_atual+"_esquerda");
itarodrigo- Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Criando o nome de uma sprite com variáveis
adaptando o código do itarodrigo, você pode usar:
Se você considera difícil lidar com arrays, então o que eu sugeri realmente é o jeito difícil. Mas é só uma questão de se adaptar, em pouco tempo você domina a técnica toda.
O que eu chamo de "jeito difícil" mesmo é aquele MONTE de if-else.
- Código:
execute_string("sprite_index="+global.player_atual+"_esquerda");
Se você considera difícil lidar com arrays, então o que eu sugeri realmente é o jeito difícil. Mas é só uma questão de se adaptar, em pouco tempo você domina a técnica toda.
O que eu chamo de "jeito difícil" mesmo é aquele MONTE de if-else.
- Código:
if táPraDireita && táCorrendo && éOPlayer1
sprite_index=player1CorrendoPraDireita
if táPraDireita && táCorrendo && éOPlayer2
sprite_index=player2CorrendoPraDireita
if...
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Tópicos semelhantes
» Pegar nome das variaveis de uma instancia
» [resolvido] controlar variáveis através de outras variáveis ou transportar
» Como colocar uma sprite no lugar do nome Score?
» A pessoa escreve o nome e o obj fala uma frase com o nome que ela escreveu
» [Resolvido]Como criar uma pergunta com resposta digitada? Tipo qual o seu nome ai o jogador digita o nome e começa o jogo e o jogo faz tudo com aquele nome?
» [resolvido] controlar variáveis através de outras variáveis ou transportar
» Como colocar uma sprite no lugar do nome Score?
» A pessoa escreve o nome e o obj fala uma frase com o nome que ela escreveu
» [Resolvido]Como criar uma pergunta com resposta digitada? Tipo qual o seu nome ai o jogador digita o nome e começa o jogo e o jogo faz tudo com aquele nome?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos