[Resolvido][Ajuda] Utilização de Lógica na Ds_list

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

[Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Ritton em Sab 03 Dez 2011, 00:20

Olá pessoal! Bateu uma dúvida enquanto estávamos fazendo a ds_list. Eu estava conversando com o Luiz para mudarmos o estilo da lista para ficar igual ao do iTunes, ou seja, cada espaçamento que corresponde a um nome de script tem uma cor. A ideia é a seguinte:

Se um espaçamento é branco
O próximo deve ser azul.

Utilizando essa lógica, isso deve ocorrer repetidamente até a o final da ds_list, ou seja, um espaço será branco, outro azul, outro branco e assim por diante. Pergunto-lhes o seguinte: utilizando a lógica, como poderemos fazer com que isso ocorra? Para retirar algumas dúvidas, segue uma imagem do estilo da playlist do iTunes:



Como podem observar, um espaço é branco e outro é azul e assim repetidamente. Como podemos fazer isso em uma ds_list, sem que haja falhas?

Serei grato se puderem ajudar... Happy


Última edição por Ritton em Sab 03 Dez 2011, 16:24, editado 1 vez(es)

Ritton

Ranking : Nota C
Número de Mensagens : 673
Idade : 18
Data de inscrição : 07/06/2011
Notas recebidas : C
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Limalokão em Sab 03 Dez 2011, 00:36

Voce pode tentar fazer o seguinte: cria um background com linhas brancas a cada 20pxs de distancia uma da outra, assim vai ficar espaços transparentes entre elas, então coloca o fundo azul clarinho daquele jeito e usa uma view pra ver só onde estão as musicas e as listras. é uma ideia =D Desculpe se não ajudei mas eu sempre tento! =D

EDIT

então cara fiz essa engine pra você ter uma ideia do que estou falando =D

Use as flechas do teclado para rodar a lista de música =D



Engine View Playlist

Foi mal se não era o que você queria cara! =D Flws brother

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Mr. Kaleb em Sab 03 Dez 2011, 09:14

Um jeito bom seria você pegar o tamanho da lista, e criar um laço, pulando de dois em dois itens e colocando uma cor. Vou te mostrar mais ou menos como ficaria:
Código:
for (i=0;i<ds_list_size(lista);i+=2)
{draw_set_color(c_white)}
for (i=0;i<ds_list_size(lista)+1;i+=2)
{draw_set_color(c_aqua)}

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Itibere10 em Sab 03 Dez 2011, 09:25

Se as letras forem em Draw (Praticamente IMPOSSÍVEL) você pode colocar sprites...

Ou Coloque um background todo BRANCO(ou todo AZUL) e crie uma sprite na medida que você quiser(a sprite sera a cor contraria do Background)
Depois crie 1 objeto com a sprite e va colocando onde você quer... Happy

Itibere10

Número de Mensagens : 84
Idade : 18
Data de inscrição : 01/12/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Ritton em Sab 03 Dez 2011, 09:54

Obrigado pessoal. A já havia pensado nessa maneira também de usar um background. Mas eu estava vendo e queria saber, utilizando o evento Draw (acredito que apenas nesse funcionará) como podemos fazer isso? Eu gostaria que vocês imaginassem a playlist, igual ao da imagem e utilizar isto para colocar no draw. Utilizem a lógica para fazer isso... Garanto que não seja impossível, mas apenas precise pensar um pouco.

Se puderem ajudar, ficarei agradecido! Também agradeço os que tentaram!

Até mais! Happy

PS: Ah, a engine do SoulLimaloko era basicamente o que eu queria, mas utilizou-se o background. Aconselho a baixarem para entender melhor o que eu gostaria que ocorresse. Ah, nem adianta montar um código sem usar a lógica, ok?

Ritton

Ranking : Nota C
Número de Mensagens : 673
Idade : 18
Data de inscrição : 07/06/2011
Notas recebidas : C
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Mr. Kaleb em Sab 03 Dez 2011, 10:12

Você viu o meu exemplo?
Acho que poderia funcionar, mas não testei.

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Luca$ em Sab 03 Dez 2011, 11:40

No meu media player tinha um sistema parecido.
Nao vou copiar o código porque era mais avançado,mas uma lógica:
Código:

//Partes Azul
for (i=y; i<=ds_list_size(lista)*20; i+=40)
{
draw_set_color(c_blue)
draw_rectangle(x,i,x+400,i+20,0)
}
//Partes Brancas
for (i=y+20; i<=ds_list_size(lista)*20; i+=40)
{
draw_set_color(c_white)
draw_rectangle(x,i,x+400,i+20,0)
}

Isso é para um espaçamento de 20 em 20 px.
Os valores de x e o yincial vc muda

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Limalokão em Sab 03 Dez 2011, 15:26

GMLucas escreveu:No meu media player tinha um sistema parecido.
Nao vou copiar o código porque era mais avançado,mas uma lógica:
Código:

//Partes Azul
for (i=y; i<=ds_list_size(lista)*20; i+=40)
{
draw_set_color(c_blue)
draw_rectangle(x,i,x+400,i+20,0)
}
//Partes Brancas
for (i=y+20; i<=ds_list_size(lista)*20; i+=40)
{
draw_set_color(c_white)
draw_rectangle(x,i,x+400,i+20,0)
}

Isso é para um espaçamento de 20 em 20 px.
Os valores de x e o yincial vc muda

Aqui funcionou! Mas só que não usei a ds_list por isso criou 2 linhas apenas, mas deu certo! =D Só tem que usar aquela cor de azul mais clara, acho que é cyan o nome! Flws

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Itibere10 em Sab 03 Dez 2011, 15:32

É Ritton, o draw pode ser usado também, mais falei que era raro, pois como é muito + trabalhoso e cansativo, por isso recomendo o do background e das sprites...

OBS: N é que seja impossível, é só modo de dizer, já que é muito cansativo...

Até mais e boa sorte com o projeto... Happy

Itibere10

Número de Mensagens : 84
Idade : 18
Data de inscrição : 01/12/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por luiz_eldorado em Sab 03 Dez 2011, 15:59

Eu não ia responder, por que eu estaria respondendo eu mesmo... Sim, isto é para o GML Maker. Eu já criei o sistema, ja sei como fazer isso, é só ver, num for, se o numero é impar ou par, e dar a cor à ele.
CREATION CODE DA ROOM:
Código:
for(i=0;i<(ds_list_size(list));i+=1)
{
o=instance_create(32,96+(i*16),obj_blibio)
o.s=ds_list_find_value(list,i)
if i/2=(i/2)-frac(i/2) {o.c=c_white} else {o.c=make_color_rgb(204,227,253)}
}
DRAW DO OBJ_BIBLIO:
Código:
draw_set_color(c)
draw_rectangle(x,y,room_width-x,y+16,0)
Só isto aí.

EDIT:
Vejam como ficou:

Até mais!

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Ritton em Sab 03 Dez 2011, 16:28

Valeu pessoal! Parece que o Luiz já deu um jeito! Agradeço a todos vocês que tentaram ajudar de alguma forma! Admiro isso, de verdade! Boa sorte para vocês em seus projetos e obrigado novamente a todos!

Até mais!

Ritton

Ranking : Nota C
Número de Mensagens : 673
Idade : 18
Data de inscrição : 07/06/2011
Notas recebidas : C
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Hatzo enkiri em Sab 03 Dez 2011, 19:29

Sei que a dúvida já foi resolvida, mas vc poderia substituir o if i/2=i/2-frac(i/2) por if (i mod 2)=0 É igual sua função porém ele vê o resto da divisão por dois. Bom é isso! Parabéns pelo projeto. Será de grande ajuda. Tchau

Hatzo enkiri

Ranking : Nota B
Número de Mensagens : 226
Idade : 22
Data de inscrição : 19/02/2009
Notas recebidas : B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido][Ajuda] Utilização de Lógica na Ds_list

Mensagem por Conteúdo patrocinado Hoje à(s) 20:23


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

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

- Tópicos similares

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