Entrar
Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game makerpor pequetux Hoje à(s) 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
» 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
[Resolvido]Como melhorar esse código ?
3 participantes
Página 1 de 1
[Resolvido]Como melhorar esse código ?
Estou tentando criar alguns obj randomizados e que eles nunca se repetissem na room.
tentei criar dessa forma, mas está bem feia e não funciona 100%. Eu tenho 20 carros (obj) diferentes que surgem a direita da minha view, como se a view estivesse mais rápida que a velocidade do carro atual.
Dessa forma (codigo abaixo), estou até conseguindo criar obj randomizados, mas eles se repetem e a função que eu vou executo logo depois, vai cair sobre todos os obj iguais, causando um acidente e isso não quero que aconteça.
No exemplo abaixo coloquei a penas 3 obj, quando executo o código ele qse não cria o obj_caminhao_marrom e repete muito o obj_carro_vermelho.
Gostaria de ajuda para otimizar meu código e fazer com que não se crie o mesmo objeto enquanto ele estiver na view.
Obrigado !
tentei criar dessa forma, mas está bem feia e não funciona 100%. Eu tenho 20 carros (obj) diferentes que surgem a direita da minha view, como se a view estivesse mais rápida que a velocidade do carro atual.
Dessa forma (codigo abaixo), estou até conseguindo criar obj randomizados, mas eles se repetem e a função que eu vou executo logo depois, vai cair sobre todos os obj iguais, causando um acidente e isso não quero que aconteça.
No exemplo abaixo coloquei a penas 3 obj, quando executo o código ele qse não cria o obj_caminhao_marrom e repete muito o obj_carro_vermelho.
Gostaria de ajuda para otimizar meu código e fazer com que não se crie o mesmo objeto enquanto ele estiver na view.
- Código:
if global.gerar = true
{
ox = 1700
oy = 580
if collision_circle(ox,oy,100,obj_furgao_preto,0,0)or
collision_circle(ox,oy,100,obj_carro_vermelho,0,0)or
collision_circle(ox,oy,100,obj_caminhao_marrom,0,0)
{
exit;
}
else
{
instance_create(ox,oy,choose(obj_furgao_preto,obj_carro_vermelho,obj_caminhao_marrom))
global.gerar = false
alarm[0] = (room_speed * 5);
}
}
Obrigado !
Re: [Resolvido]Como melhorar esse código ?
Faz assim quando randomizar o carro, usa o instance_exists() para saber se aquele objeto já está na sala, se já tiver repete a ação, com outro random
Exemplo:
teste = true
with(teste = true){
carro = random(20)
if (!instance_exist(carro)){
instance_create(0,0,carro)
teste = false
}else { teste = true }
}
Exemplo:
teste = true
with(teste = true){
carro = random(20)
if (!instance_exist(carro)){
instance_create(0,0,carro)
teste = false
}else { teste = true }
}
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como melhorar esse código ?
Da erro na linha
if (!instance_exist(carro)){
Cannnot set a constant to a value
if (!instance_exist(carro)){
Cannnot set a constant to a value
Re: [Resolvido]Como melhorar esse código ?
Foi mal fiz errado é assim: if (!instance_exists(carro)){ se der erro faz assim: if !(instance_exists(carro)){
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como melhorar esse código ?
O problema não é a escrita vc escreveu errado mas eu arrumei no GMS antes, dai quando eu foi reportar o erro pra vc copiei o que vc tinha escrito errado. rrsrsrs
mas ele retorna o erro que eu mostrei acima
mas ele retorna o erro que eu mostrei acima
Re: [Resolvido]Como melhorar esse código ?
O problema está em carro = random(20). Provavelmente porque um objeto se chama carro, e já que é um valor fixo para o objeto, ele dá esse erro pois não é possível alterar o valor da constante "carro" e.... não pera, tem algo estranho aí. Qual é a do "with(teste = true)"?
Mas não tem segredo, se cada carro tiver um objeto separado, usa o irandom(numero) (random normal gera frações) e cria o carro. Porém, falta um detalhezinho:
E então:
Fica bem mais intuitivo para uma mudança futura. Eu usei irandom_range ao invés do random normal, para incluir o zero nos valores gerados.
Mas não tem segredo, se cada carro tiver um objeto separado, usa o irandom(numero) (random normal gera frações) e cria o carro. Porém, falta um detalhezinho:
- Código:
// Poe isso num script e chama ele no Create
arr_carros[0] = obj_carro1
arr_carros[1] = obj_carro2
arr_carros[2] = obj_carro3
arr_carros[3] = obj_carro4
arr_carros[4] = obj_carro5
arr_carros[5] = obj_carro6
arr_carros[6] = obj_carro7
arr_carros[7] = obj_carro8
arr_carros[8] = obj_carro9
arr_carros[9] = obj_carro10
arr_carros[10] = obj_carro11
arr_carros[11] = obj_carro12
arr_carros[12] = obj_carro13
arr_carros[13] = obj_carro14
arr_carros[14] = obj_carro15
arr_carros[15] = obj_carro16
arr_carros[16] = obj_carro17
arr_carros[17] = obj_carro18
arr_carros[18] = obj_carro19
arr_carros[19] = obj_carro20
quantidade_carros = 20
E então:
- Código:
// Blah, collision_line
else {
c = irandom_range(0,quantidade_carros-1)
if (!instance_exists(arr_carros[c])) {
instance_create(ox,oy,arr_carros[c])
}
global.gerar = false
alarm[0] = room_speed * 5;
}
Fica bem mais intuitivo para uma mudança futura. Eu usei irandom_range ao invés do random normal, para incluir o zero nos valores gerados.
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como melhorar esse código ?
Cara a variável carro era só pra exemplo não disse pra por assim no seu jogo o tal carro representava qual carro você quer por...E no caso da variável carro ia criar o objeto pela index não pelo nome
E o with serve pra repetir só se aquele carro já existe(Se esse carro já existe lá ele repete e tenta outro) assim não teria carros repitidos
E como eu coloquei no meu post era um exemplo do que ele devia fazer não como fazer
E o with serve pra repetir só se aquele carro já existe(Se esse carro já existe lá ele repete e tenta outro) assim não teria carros repitidos
E como eu coloquei no meu post era um exemplo do que ele devia fazer não como fazer
Eu 2 posts atrás escreveu:Faz assim quando randomizar o carro, usa o instance_exists() para saber se aquele objeto já está na sala, se já tiver repete a ação, com outro random
Exemplo: "<-----"
teste = true
with(teste = true){
carro = random(20)
if (!instance_exist(carro)){
instance_create(0,0,carro)
teste = false
}else { teste = true }
}
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como melhorar esse código ?
Sim, to ligado (até porque os nomes linkam para as indexes de qualquer forma), mas e se os carros dele não forem as primeiras 20 IDs? Vai dar problema, certamente.
Eu acho, apenas acho, que você confundiu with com while. Mas realmente, uma rotina desse tipo necessita ser implementada, então ficaria assim:E o with serve pra repetir só se aquele carro já existe(Se esse carro já existe lá ele repete e tenta outro) assim não teria carros repitidos
- Código:
c = irandom_range(0,quantidade_carros-1)
while (instance_exists(arr_carros[c])) c = irandom_range(0,quantidade_carros-1)
instance_create(ox,oy,arr_carros(c))
// E o resto bla
Tranquilo, estou aqui apenas complementando. Enfim, espero que ele esteja entendo a lógica do códigoE como eu coloquei no meu post era um exemplo do que ele devia fazer não como fazer
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como melhorar esse código ?
É, erro de português(Quer dizer inglês) quis dizer while
Eu já falei antes que isso era um exemplo???Não disse pra randomizar assim
Foi isso o que eu disse. O resto era só um exemplo.Você não considera exemplos como possibilidade, exemplos são para você entender melhor.Sem referência nenhum ao oque você quer, mais sim sobre oque você quer. Ex: o FIAT Uno é um carro. Isso é um exemplo de carro, não quer dizer que o Uno seja o carro que você se referiu.Quer dizer que o Uno é o exemplo de carro. Sem referências a você, só referências a carros...
Markituh escreveu:Sim, to ligado (até porque os nomes linkam para as indexes de qualquer forma), mas e se os carros dele não forem as primeiras 20 IDs? Vai dar problema, certamente.
Eu já falei antes que isso era um exemplo???Não disse pra randomizar assim
Minha verdadeira resposta, Nua e crua, Sem exemplos, só explicação escreveu:Faz assim quando randomizar o carro, usa o instance_exists() para saber se aquele objeto já está na sala, se já tiver repete a ação, com outro random
Foi isso o que eu disse. O resto era só um exemplo.Você não considera exemplos como possibilidade, exemplos são para você entender melhor.Sem referência nenhum ao oque você quer, mais sim sobre oque você quer. Ex: o FIAT Uno é um carro. Isso é um exemplo de carro, não quer dizer que o Uno seja o carro que você se referiu.Quer dizer que o Uno é o exemplo de carro. Sem referências a você, só referências a carros...
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como melhorar esse código ?
Só uma coisa, se tiver usando aquele while, vai dar problema caso todos os carros estiverem na room. Cria uma variável global pra controlar a quantidade de carros, que aumenta o valor dela no create de cada carro e diminui no Destroy deles, e então você usa um if pra testar se essa var é == a quantidade_carros, e da um exit [antes do c = blabla].
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|