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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» 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

» 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


Random de objetos na room?

+3
luan.alc
GameMakerTutoriais
Geferson
7 participantes

Ir para baixo

Random de objetos na room? Empty Random de objetos na room?

Mensagem por Geferson Qua 30 maio 2012, 00:41

Alguem sabe algum codigo para eu colocar na room ou em um objeto para que com esse codigo seja criado na room, de forma "random" um objeto, mas que esse random seja de varios objetos, tipo fazer um random em uns 50 objetos?
Geferson
Geferson

Data de inscrição : 20/07/2011
Reputação : 0
Número de Mensagens : 30
Prêmios : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por GameMakerTutoriais Qua 30 maio 2012, 08:30


Se você quiser vários objetos aleatórios, veja se esse tópico te ajuda:
https://gmbr.forumeiros.com/t22455-como-tornar-isto-possivel

Mas se forem posições aleatórias pra várias instâncias de um mesmo objeto, você pode tentar fazer o seguinte no evento de criação da room:

Código:
repeat (numero_de_instancias)
{
    instance_create(random(room_width), random(room_height), qual_objeto);
}
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Random de objetos na room? Empty

Medalhas x 0 Tutoriais x 4 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por luan.alc Qua 30 maio 2012, 11:06

Cara estou fazendo um jogo e precise disto, e usei um pouco de logica ...

Estou usando o comando choose !!

Exemplo : choose(obj_pnts10,obj_pnts20,obj_pnts50,obj_vida01,obj_pnts100)

e lá da certo ! abraços qualquer duvida .
luan.alc
luan.alc

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 13/03/2012
Reputação : 3
Número de Mensagens : 294
Prêmios : Random de objetos na room? 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

Ir para o topo Ir para baixo

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por Geferson Qua 30 maio 2012, 14:55

a principio tentarei o codigo do luan, parece ser o que eu to precisando, quanto o do ninja parece que se fizer modificação tambem posso ter resultado...só que não é random de posição que procuro e sim de objeto, todos os objetos a ser criados por random estarão sempre na mesma posição na room
Geferson
Geferson

Data de inscrição : 20/07/2011
Reputação : 0
Número de Mensagens : 30
Prêmios : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por luan.alc Qua 30 maio 2012, 15:48

Se entendi direito pode tentar o choose, que dará certo, no meu jogo GlowBallhttps://gmbr.forumeiros.com/t22480-glowball-03p-lancado-03

estou usando este código, e está suprindo minhas necessidades
!
luan.alc
luan.alc

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 13/03/2012
Reputação : 3
Número de Mensagens : 294
Prêmios : Random de objetos na room? 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

Ir para o topo Ir para baixo

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por saim Qua 30 maio 2012, 15:50

O problema do código do luan.alc é que a função "choose" tem um limite de argumentos (16 itens, eu acho). Mas você pode criar um script rápido pra sortear um objeto entre quantos quiser. Coloque cada um dos objetos numa array e sorteie o número do índice.
Código:
var i, sorteio, indiceSorteado;
i = 0;
sorteio[i] = objeto0; i += 1;
sorteio[i] = objeto1; i += 1;
...
sorteio[i] = objetoN;
indiceSorteado = irandom(i);
instance_create(x, y, sorteio[indiceSorteado]);
Você não precisa dessa sintaxe com o índice "i", mas eu gosto dela. Ela te permite mudar as posições das linhas e incluir novos elementos sem se preocupar com a numeração da array.
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 : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por luan.alc Qua 30 maio 2012, 17:41

Não sabia desta limitação, no meu eu uso uns 7 itens sendo que um deles ...

choose(asd,asd,asd,asd,asd,asd, ALEATÓRIO)

o valor do aleatório é o valor de outra Choose que usei, kkk

Agora essa parte de Script, eu tenho que aprender, nunca usei script em meus jogos, só quando tem dll e tal .
luan.alc
luan.alc

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 13/03/2012
Reputação : 3
Número de Mensagens : 294
Prêmios : Random de objetos na room? 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

Ir para o topo Ir para baixo

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por gabrielsch Qua 30 maio 2012, 21:55


Se eu entendi, outro método seria usar o switch :

Código:
var r_n, r_o;

r_n = irandom(5)

switch (r_n)
{
    case 0: r_o = objeto0; break;
    case 1: r_o = objeto1; break;
    case 2: r_o = objeto2; break;
    case 3: r_o = objeto3; break;
    case 4: r_o = objeto4; break;
    case 5: r_o = objeto5; break;
}
 
instance_create(x,y,r_o)


Caso tenha alguma duvida, é só falar! o/

Flw! sorrindo2
gabrielsch
gabrielsch

Games Ranking : Nota A

Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Reputação : 28
Número de Mensagens : 1230
Prêmios : Random de objetos na room? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por saim Qui 31 maio 2012, 08:40

@luan.alc: nesse seu código, a probabilidade de sair o valor armazenado em "ALEATÓRIO" é a mesma que a de sair qualquer um dos "asd", ou seja, uma em (...deixa eu contar...) 7! Dentro de "ALEATÓRIO", cada item tem uma probabilidade X de ser escolhido, então a probabilidade de ser escolhido um item dentro de ALEATÓRIO é de uma em (7 x X), ou seja, bem menor que os demais itens. Funcionar, funciona, mas você pode passar muito tempo sem ver aquele item específico - o que, dependendo do jogo e do item, pode ser bom, basta saber dosar a probabilidade.

@gabrielsch: Seu método é perfeito. A única desvantagem, se é que isso é uma desvantagem, é que, pra alterar o código, o programador precisa se lembrar de incluir uma linha E alterar o valor dentro do "irandom". Eu gosto mais do meu por isso, porque eu posso copiar/colar uma linha em qualquer lugar pra adicionar outro item à lista que os cálculos se adaptam automaticamente.
Mas se a lista já entra completa desde o princípio, o seu método tem o mesmo resultado e é mais rápido de ser processado pela máquina.
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 : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por GameMakerTutoriais Qui 31 maio 2012, 10:25


Tem uma forma "preguiçosa" de fazer isso sem escrever muito código. soneca Se você tiver criado todos os objetos em sequencia (no projeto) e não apagado nenhum, você pode usar o índice de um e do outro pra gerar o número aleatório:

"Primeiro" e "último" aqui seriam a ordem de criação:

Código:
objeto := irandom_range(primeiro_objeto, ultimo_objeto);

Se tiver apagado algum, você pode associar um parente a todos aqueles que serão sorteados, também fica fácil, porque através do "primeiro" e do "último" índices você controla o "range" entre quais os que quer incluir no random:

Código:
obj = -1;
while (object_get_parent(obj) <> parente) obj := irandom_range(primeiro_objeto, ultimo_objeto);
instance_create(x, y, obj);

Tem vários jeitos, aí depende de você ver qual se encaixa melhor no seu código. Happy

Abraços!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Random de objetos na room? Empty

Medalhas x 0 Tutoriais x 4 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por luan.alc Qui 31 maio 2012, 12:42

@saim por isso mesmo esta me satisfazendo porque eu quero que uns itens saiam em menas quantidade que outros, então tive a ideia de fazer isto !
luan.alc
luan.alc

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 13/03/2012
Reputação : 3
Número de Mensagens : 294
Prêmios : Random de objetos na room? 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

Ir para o topo Ir para baixo

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por Geferson Ter 05 Jun 2012, 03:19

Ninja8086
o codigo que vc disse ser forma "preguiçosa", funciona com objetos em uma pasta tipo
pasta 1=objeto01 ao objeto10
pasta 2=objeto11 ao objeto20
se eu criar um objeto para fazer o random da pasta 1 e outro objeto para fazer o random da pasta 2 da certo?

Saim
no codigo que vc postou alem do objeto, eu devo alterar mais alguma coisa, se sim o que?

Geferson
Geferson

Data de inscrição : 20/07/2011
Reputação : 0
Número de Mensagens : 30
Prêmios : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por saim Ter 05 Jun 2012, 08:38

No código do Nina8086, o importante é você entender que os objetos, além dos nomes recebem índices. O computador trata eles como índices, os nomes só servem pra nós, humanos. O que está sendo feito é um sorteio entre os índices dos objetos, diretamente. No meu código, eu coloco esses índices numa array e sorteio qual a posição da array será lida.

Explicando meu código com um pouco mais de detalhes:
1 - Crio uma array pra colocar os objetos. Em cada índice, um objeto. Ao invés de usar "i", você pode usar o valor de cada índice, diretamente, eu só uso essa sintaxe pra facilitar alterações posteriores.
2 - No final da criação da array, o tamanho dela estará armazenado em "i". Você pode usar uma outra variável, se preferir.
3 - Sorteio qual índice da array será lido. Como os índices são sempre números inteiros, "irandom" é uma boa função de se usar.
4 - Crio o objeto armazenado naquele local que foi sorteado.

Espero que agora esteja claro. Há um tutorial a respeito de arrays na minha assinatura, se é a primeira vez que você toca no assunto, pode ser uma boa dar uma lida.
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 : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por Geferson Ter 05 Jun 2012, 17:55

Gente vou explicar melhor o que eu to tentando fazer:

"tenho 5o objetos, nominados de forma crescente assim: mil_01,...,mil_50, (todos esses objetos tem a mesma posição determinada na room que e´x=100 e y=100) e e tenho uma room de nome "cassino".
O que eu quero é quando chegar na room "cassino" seja criado apenas um desses cinquenta objetos (mas que seja qualquer um deles) para que a cada vez que jogar possa ou não repetir."


E que forma seria melhor? eu criar um objeto para fazer esse random, ou inserir o codigo na room (que seria mais interessante) Talvez agora seja mais facil me dizerem qual codigo devo inserir!
Geferson
Geferson

Data de inscrição : 20/07/2011
Reputação : 0
Número de Mensagens : 30
Prêmios : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por Esaucm98 Ter 05 Jun 2012, 20:39

cara, apesar de nao ter entendido direito, eu vou te falar como eu faço talvez ajude.. pra mim quando o assunto é aleatório eu uso o random_set_seed(seed)

ou o action icon Action If Dice

no código onde tem (seed) é como os lados de um dado, quanto mais lados , mais dificil do evento acontecer, ai voce bota as instancias a serem criadas abaixo.

talvez nao seja oque voce procura, mas talvez possa ajudar

outro modo que eu uso é o CHOOSE

vc bota choose(obj1,obj2,obj3,obj4); talvez isso ajude flws
avatar
Esaucm98

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 13/05/2012
Reputação : 4
Número de Mensagens : 275
Prêmios : Random de objetos na room? 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.legioncrafters.tk

Ir para o topo Ir para baixo

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por Limalokão Ter 05 Jun 2012, 21:55

Então amigo, não sei se ja foi resolvido mas consegui aqui Happy

Então assim, você disse que tem 50 objetos

obj_1...obj_50

Cria um obj_controlador no create dele voce coloca:
valormin=obj_1
valormax=obj_50

Depois no evento que você quer que apareça o objeto:(eu usei o global left pressed"MOUSE")
instance_create(320,240,irandom_range(valormin,valormax))

Eu fiz testes aqui e criei um obj_ramdom pra ver se ele nao iria sair no meio desses mas não saiu deu certinho Happy testa aí... flws

Link aqui: objetos aleatorios

EDIT

Quase consegui agora ele ta dando um erro estranho:
___________________________________________
ERROR in
action number 1
of Mouse Event for Glob Left Pressed
for object object0:

Creating instance for non-existing object: 5

Alguém tem ideia?

EDIT²

Mesmo nomeando no create objeto por objeto num1 num2 num3 num4 ta dando o mesmo erro =/ que tenso foi mal ai cara FAIL :s
Limalokão
Limalokão

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 24/11/2009
Reputação : 10
Número de Mensagens : 805
Prêmios : Random de objetos na room? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 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


https://llgd.com.br

Ir para o topo Ir para baixo

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por saim Qua 06 Jun 2012, 08:18

Soul, dê uma olhada no código do Ninja. Ele funciona da mesma forma que você idealizou o seu, mas sem o risco dos erros.
O erro acontece porque entre a criação de um objeto e outro (OBJETOS mesmo, não instâncias), você acabou deletando aquele que teria a id == 5.
Alterar os nomes dos objetos não faz a MENOR diferença pro código, porque a máquina não vê os nomes, ela vê as id's. O código do Ninja prevê um contorno pro problema de espaços vazios entre as id's.

Esses espaços existem por causa da forma que o game maker atribui id's aos objetos, sempre em ordem crescente, mesmo que algum tenha sido deletado. Então se você cria 10 objetos, suas id's serão (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) - não acho que exista a id "0", mas não testei, então pode haver um pequeno erro nessa frase. Bom, se você, durante o desenvolvimento do projeto, conclui que o objeto "objLimaLoko", que tinha recebido a id = 5, não é mais necessário e deleta o objeto, as id's passarão a ser (1, 2, 3, 4, 6, 7, 8, 9, 10). Aí você mete a mão na testa e pensa " , o objLimaLoko é ESSENCIAL! Vou ter que criá-lo de novo!" Vai lá, mete a mão na massa e escreve tuuudo de novo. Só que a id do novo objLimaLoko não será 5, mas 11. Você terá os mesmos objetos, dispostos da mesma forma na sua árvore de recursos, mas com as id's (1, 2, 3, 4, 6, 7, 8, 9, 10, 11).
Aí, se tentar simplesmente criar um objeto entre 1 e 11, o "random" pode retornar "5", que é uma id que não tem nenhum objeto a ser associado.
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 : Random de objetos na room? 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

Random de objetos na room? Empty Re: Random de objetos na room?

Mensagem por GameMakerTutoriais Qui 07 Jun 2012, 12:37


"tenho 5o objetos, nominados de forma crescente assim: mil_01,...,mil_50, (todos esses objetos tem a mesma posição determinada na room que e´x=100 e y=100) e e tenho uma room de nome "cassino".
O que eu quero é quando chegar na room "cassino" seja criado apenas um desses cinquenta objetos (mas que seja qualquer um deles) para que a cada vez que jogar possa ou não repetir."

Uai, se for assim, com os nomes todos enumerados, é mais fácil ainda. É melhor então você usar o método que o saim postou. Porque aí você faz um loop e já indexa todos de uma só vez (usando o prefixo do nome). Por exemplo (no código do saim):

Código:
var inicio, sorteio, indiceSorteado, fim;

inicio = 1;
fim = 10; // por exemplo, (de 1 a 10)

for (i = inicio; i <= fim; i += 1)
{
execute_string('sorteio[' + string(i) + '] = object' + string(i))
}
...
indiceSorteado = irandom_range(inicio, fim);
instance_create(x, y, sorteio[indiceSorteado]);

Coloca isso no código de inicialização da room, que eu acho que vai dar certo. (não testei, não tenho o GM aqui)
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Random de objetos na room? Empty

Medalhas x 0 Tutoriais x 4 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

Random de objetos na room? Empty Re: Random de objetos na room?

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