Apresentando texto com LEGO Powered Up

Para os mais especializados em mecânica e electrónica em LEGO.
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4392
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: Apresentando texto com LEGO Powered Up

Mensagem por CyberX »

Nivel 2 aitngido.
- forma compacta de representar os sprites (uma lista de 6 inteiros em vez de uma lista de 6 listas de 6 inteiros)
- forma tb compacta de realizar o sliding/scrolling lateral (uma lista de 6 inteiros consegue armazenas 2 sprites e vou carregando o próximo sprite quando o primeiro termina de ser apresentado em vez da lista de 6 listas de n+6 inteiros inicial)
- alguma optimização de código
- algumas operações bitwise sobre inteiros
- alguma redução dos nomes das variáveis e classes
- uma nova classe e mais dois módulos

disto resultou alguma dificuldade em entender o código (mas tenho tentado comentar tudo o melhor possível) mas para o utilizador final isso é irrelevante, mantém-se a forma de operar e mais:

- é possível usar apenas dois ColorLightMatrix, numa disposição 6x3
- se por qualquer motivo estranho se tiver 4 CLMx mas se pretender 2 apresentações distintas é possível instanciar dois objectos 6x3 (ou mesmo 3 objectos quem for rico e tiver um hub de 6 portas e 6 CLMx)
- é inclusive possível usar um BOOST Move Hub (no limite mesmo mas consegue carregar a mesma fonte de 10 digitos, 26 letras, ?, !, @ e espaço dos manos mais crescidos)

Quem usar 2 CLMx apenas não espere grande coisa exibindo caracteres estáticos a menos que edite a fonte (continua a ser 6x6) e encaixe tudo em 6x3. Mas se mandar exibir o mesmo caracter em modo sliding a coisa melhora, o nosso cérebro consegue colmatar a falta de resolução.

Pessoalmente tenho achado vantajoso mandar exibir um caracter precedido de um espaço e fazer deslizar para a esquerda:
matrix.show(' A', 'L', 250, (Color.YELLOW, Color.BLACK) )
(está ali um espaço entre a primeira plica e o A)







O código todo e alguns exemplos no github:
https://github.com/JorgePe/matrix_6x6

próximos passos serão extender a fonte (mas não para o Move Hub, esse vai ficar essencialmente como está) e implementar uma forma de o utilizador definir o seu próprio sprite para não ter que editar a fonte no código.
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Responder