[RESOLVIDO]Chances

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

Resolvido [RESOLVIDO]Chances

Mensagem por Zero. em Dom 22 Ago 2010, 17:03

Preciso de ajuda rapido,
eu não sei fazer algo aparecer tandomicamente =/
Tipo tem um botao pra criar tal item na room, ai vc clika E o item aparece, mas eu quero q o item apareça em qualquer lugar da room, ajuda ai...

e tambem, quero que uma criatura que eu fiz ande aleatoriamente para quaqer direçao tipo ela ta indo pra cima e quando ela quer vai pra diagonal depois pra baixo, pra esquerda e por assim vai.

e quero tambem, q tipo uma criatura comeu um alimento, e logo em seguida ela gera outra criatura, mas quero q ela gere 1 criatura entre 4, ou seja ela pode gerar uma dessas 4 criaturas, mas sendo que uma tenho 80% de chance de sair e as outras 3 com 6.3% de chance de sair (exemplo <) e e 1.1% de chance de num sair nada. é isso tenho duvida com chances e a funçao random

VLW AGRADEÇO DESDE JÁ !

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Fuzenrad em Dom 22 Ago 2010, 17:13

Bastante simples, as funções room_width e room_height são variáveis que armazenam o valor da largura e altura da tela respectivamente e a função irandom(x), randomiza números inteiros dentro do intervalo de 0 até x, dessa forma é possível randomizar onde o objeto vai aparecer dentro da tela, unindo-as:

Código:
x=irandom(room_height);
y=irandom(room_width);
Obs.: Use no evento Create ou algum que só ocorra 1 vez, caso contrário o objeto ficará randomizando sua posição constantemente.

Fuzenrad

Ranking : Nota A
Número de Mensagens : 1026
Idade : 26
Data de inscrição : 04/07/2010
Notas recebidas : A-A-A-A-B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Zero. em Dom 22 Ago 2010, 17:29

OTIMO!
Valeu mas, preciso de ajuda com as outras perguntas =/ ...

Pricipalmente o da direção aleatoria !

E OUTRA PERGUNTA !
Como fazer para uma criatura ir atras do alimento mais proximo^?
pq aqui ela ta indo atras da 1° a ser criada *-*

EDIT__
ela ta indo atras da 1° q criou qndo ela estava na room, se ja tiver um alimento antes dela estar na room ou seja, se ela nascer depois do alimento ela naum vai atras desse alimento q ja tem ajuda i =+

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Fuzenrad em Dom 22 Ago 2010, 17:58

Isso envolve um pouco mais de raciocício, mas é relativamente simples também, tem que controlar cada objeto individualmente e isso é quase sempre um problema para os novatos.

Seguinte, o game maker tem várias funções pra identificar cada instância, indiferente se são o mesmo objeto em locais diferente, é possível fazer essa diferenciação de várias maneiras, uma delas é o id e o object_index, que eu acho as mais complicadas. Geralmente eu uso o instance_find(obj,n) ou o instance_position(x,y,obj) (mas funciona melhor para objetos fixos), no seu caso específico existe, já pronta, a função instance_nearest(x,y,obj) que localiza o objeto mais próximo da coordenada [x,y] e o controla.

Para trabalhar com essas funções, você usa o with (tradução literal com), funciona da segunte maneira:

with objeto_desejado {
função }

Você pode também "puxar" valores dos outros objetos, utilizando também, o with, com o other:

with objeto_desejado {
image_angle=other.image_angle }

Dessa forma, pra fazer o objeto seguir o ponto de "comida" mais próximo dele, e não o primeiro a ser colocado na tela, você pode usar (evento Step):

Código:
with instance_nearest(x,y,comida) { other.speed=3;
other.direction=point_direction(other.x,other.y,x,y) }
A tradução literal seria:
Com o objeto "comida" mais próximo, insira a velocidade 3 na direção do objeto mais próximo.

Você pode então criar algumas situações, como destrui a "comida" ao encostar, nesse caso ele vai percorrer o menor caminho possível, passando por todas as "comidas" da tela.

Fuzenrad

Ranking : Nota A
Número de Mensagens : 1026
Idade : 26
Data de inscrição : 04/07/2010
Notas recebidas : A-A-A-A-B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Zero. em Seg 23 Ago 2010, 13:10

Muito obrigado, mas o maior problema msm é,
e quando naum ouver nenhuma comida, eu quero q ele fique andando pro lado que ele quizer como tem na minha ultima resposta.

E tambem a de chances de cada criatura nascer.

edit _

E tipo, quero aumentar sua rep se aqui tiver como pq vc mi ajudou bastante =D, mas n sei como aumentar( se puder é claro)

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Fuzenrad em Seg 23 Ago 2010, 16:28

O fórum não possui esse tipo de sistema, de qualquer forma obrigado, é muito bom ver que te ajudei.

Então, conhecendo a variável de direção e sabendo que uma volta completa tem 360 graus, você chega em:
direction=irandom(360);

E com a função instance_number(obj) que conta o números de objetos obj:

if instance_number(comida)=0 {
função }

Eu aconcelho você usar em um evento Alarm (qualquer um que esteja disponível), no evento Create desse mesmo objeto, você coloca:

Código:
alarm[0]=room_speed; //Executa o alarm 0 após 1 segundo

E no Alarm 0:
Código:
alarm[0]=2*room_speed //2 segundos
if instance_number(comida)=0 {
direction=irandom(360);
speed=3; }
Traduzindo: A cada 2 segundos a direção será alterada caso não exista nenhum objeto "comida" na tela.

Sobre a chance de cada criatura nascer, não entendi muito bem, eu pensei em um código assim (no evento Step):

Código:
chance=floor(random(100000));

if chance=0
instance_create(irandom(room_height),irandom(room_width),criatura)
Nesse caso, a "chance" de ser criado um objeto "criatura" é de 1 em 100.000, não muito ocasional.

Fuzenrad

Ranking : Nota A
Número de Mensagens : 1026
Idade : 26
Data de inscrição : 04/07/2010
Notas recebidas : A-A-A-A-B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Zero. em Seg 23 Ago 2010, 18:10

Muito obrigado,
o problema de se mover randomicamente foi resolvido mas, o de chance n é assim, olha qndo a criatura come uma comida ela cria outra criatura, esta criatura tem 80% de sair n1(no caso criatura 1) 5% de chance de sair n2
5% de chance de sair n3 e 5% de chance de sair n4 (N = CRIATURA)

__________________________________________________________

Outro probleminha, as criaturas que ficam paradas elas precisam comer,
entaum elas devem comer a comida que estiver proxima, a room ela é ( os quadradinhos) 16x16 entaum a criatura n movel ela captura uma comida que esteja a até 4 quadrados de distância dela Happy ajuda ai e diz se é possivel =D.
____________________________________________________________

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Fuzenrad em Seg 23 Ago 2010, 19:05

Em relação a chance, no evento create, você coloca:

Código:
chance=irandom(100)

if chance>=0 and chance<=80
instance_create(x,y,criatura1)

if chance>80 and chance<=85
instance_create(x,y,criatura2)

if chance>85 and chance<=90
instance_create(x,y,criatura3)

if chance>90 and chance<=95
instance_create(x,y,criatura4)
Faltou os outros 5%, de qualquer forma funciona perfeitamente, a criatura 1 será criada muito mais vezes que a criatura 2, que será bem rara.

Sobre a outra dúvida, você pode usar:

If distance_to_object(comida)<=4 {
função }

Fuzenrad

Ranking : Nota A
Número de Mensagens : 1026
Idade : 26
Data de inscrição : 04/07/2010
Notas recebidas : A-A-A-A-B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Zero. em Ter 24 Ago 2010, 06:07

Muito obrigado msm!

Resolvido! xD mas os outros 5% que faltam eu vou adicionar eu msm acho q pode né?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Dancity em Ter 24 Ago 2010, 13:11

Só num esquece de dar os créditos pro fuzenrad que te ajudou bastante xD

Dancity

Ranking : Nota A
Número de Mensagens : 1339
Data de inscrição : 11/01/2009
Notas recebidas : A
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Zero. em Ter 24 Ago 2010, 19:27

Claro xD >

Mas como se dar creditos , tipo reputação pros outros?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por fonetico em Ter 24 Ago 2010, 19:35

kiklin123 escreveu:Claro xD >

Mas como se dar creditos , tipo reputação pros outros?

Não exatamente. Você poderia criar uma área do seu jogo reservada para dar os agradecimentos às pessoas que te ajudaram. Por exemplo, em vários jogos da internet (flash) você pode ver que alguns ao finalizar, aparece os créditos, outros tem que clicar num botão "credits" e assim vai!

Tópico resolvido!
Trancado!

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]Chances

Mensagem por Conteúdo patrocinado Hoje à(s) 10:44


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum