Teste do Makey Makey

Essa semana chegou o Makey Makey na Immersive e fizemos um primeiro teste , abaixo o vídeo.
O Makey Makey é tipo um teclado normal, só que ele envia o comando para o computador quando fecha o circuito elétrico referente a cada tecla.

Para entender melhor o que é visite o site do Fabricante – LINK

PS: 10 meses sem postar nada , que vagabundo que sou kkk.

Share

Unity3D – A janela Console e a classe Debug

Já que falei sobre mensagens para debug no lejos, agora falarei sobre isso no Unity3D.

Exibir mensagens para acompanhar resultados dentro de sua lógica é uma prática indispensável e no Unity isso ganha algumas funcionalidades a mais.

Para exibir uma mensagem é utilizada a classe Debug, que contém os métodos Log, LogError, LogWarning, Break, DrawLine e DrawRay, vou explicar todas.

Debug.Log();

Se a mensagem for simples podemos utilizar o método Log:

Debug.Log(“Teste de mensagem”);

Será exibida uma mensagem com o ícone branco padrão (Linha 1 da imagem).

Podemos sinalizar um objeto para ser realçado quando clicamos na mensagem na tela console

Debug.Log(“Teste de mensagem” , gameObject);

Ao clicar na linha 2 o objeto indicado ganha um destaque.

Debug.LogError();

É uma variação do Log, funciona igual, mas mostra um ícone vermelho de erro, igual da linha 3 da imagem.

Se o botão Error Pause estiver clicado na janela console e uma mensagem desse tipo for enviada, a aplicação será pausada automaticamente.

Ele aceita a indicação de um gameObject também.

Debug.LogError(“Mensagem com icone de erro”);

Debug.LogWarning();

É uma variação do Log, funciona igual, mas mostra um ícone amarelo de alerta, igual da linha 4 da imagem.

Ele aceita a indicação de um gameObject também.

Debug.LogWarning(“Mensagem com icone de alerta”);

Debug.Break();

É utilizado para pausar o aplicativo, esse método não tem parâmetros.


Vou dar uma parada agora de explicar os métodos e explicar os botões da tela console, pois os dois últimos métodos não a usam.

Clear

Limpa a tela do console.

Collapse

Agrupa as mensagem iguais, por exemplo, ao invés de mostrar 5 números 0 mostra apenas 1:

Clear on play

Limpa o console quando é clicado em play.

Error pause

Pausa a aplicação quando alguma mensagem de erro for enviada.

Open editor log

Abre o editor de texto padrão do sistema com todos os logs no Unity3D.


Voltando aos métodos.

Debug.DrawLine();

Desenha uma linha entre um ponto inicial e um ponto final, com cor e tempo de duração, se o tempo não for passado ou for 0 essa linha ficará visível durante 1 frame.

Debug.DrawLine(pontoInicial : Vector3, pontoFinal : Vector3, cor : Color , tempoSegundos : float);

Exemplo:

Debug.DrawLine(Vector3.zero, new Vector3(1, 0, 0), Color.red , 2);

Desenhará uma linha vermelha que ficará visível por 2 segundos.

Essa linha ficará visível na scene view e só ficará na game view se o botão gizmos estiver ativo.

Debug.DrawRay();

Desenha uma linha entre um ponto inicial e uma direção, com cor e tempo de duração, se o tempo não for passado ou for 0 essa linha ficará visível durante 1 frame.

Debug.DrawRay(pontoInicial : Vector3, pontoFinal : Vector3, cor : Color , tempoSegundos : float);

Exemplo:

void OnCollisionEnter(Collision collision) {
foreach (ContactPoint contact in collision.contacts) {
Debug.DrawRay(contact.point, contact.normal, Color.green, 2);
}

Desenhará uma linha verde que ficará visível por 2 segundos identificando os pontos de contato.

Essa linha ficará visível na scene view e só ficará na game view se o botão gizmos estiver ativo.

E é isso ai , mensagem de debug sempre facilitando nossa vida.

Share

Dica: Tenda Digital – Blog muito bom sobre Lego NXT e Robótica

Estava olhando por ae nos blogs de tecnologia e robótica e vi um vídeo no blog THENXTSTEP explicando o algoritmo PID e fiquei impressionado por 2 coisas: Vídeo muito bem feito e também porque foi feito por um garoto brasileiro, fiquei curioso e visitei o seu blog, muito bom, ganhou vários campeonatos de robótica, CLIQUE AQUI e visite, vale a pena.
E para provar que é bom, segue o vídeo sobre o algoritmo PID que falei.

http://www.techlego.blogspot.com/

Aproveitando , outro blog bacana de um amigo dele:

http://nossosrobos.blogspot.com/

Share

Lejos – classe RConsole – Ferramenta para Debug

Nesse vídeo demonstro a utilização da classe RConsole do Lejos, ela cria uma conexão entre o Lego e o computador, enviando mensagens para serem mostradas em um console no computador, facilitando muito a visualização de dados para debug.

Abaixo um comparativo entre algumas formas de exibir dados em texto:

1 – Utilizando a classe LCD:


 
import lejos.nxt.*;
.
.
.
LCD.drawString(String,coluna,linha);

Com ela você tem uma área de 22 colunas e 7 linhas.
Passa-se a string que quer exibir, coluna e linha inicial para o texto.
O texto fica sempre fixo nessa posição.
A classe LCD tem ainda os metodos drawInt, drawChar… para maiores detalhes acesse o LINK.
 
2 – Utilizando a classe System


import lejos.nxt.*;
.
.
.
 System.out.println("Valor de i= " + i);

Com ela você tem uma área de 22 colunas e 7 linhas.  
Passa-se a string que quer exibir e as linhas vão sendo preenchidas, acabando as 7 linhas vai sumindo as primeiras e aparecendo as novas no fim.

3 – Utilizando a classe RConsole

 

import lejos.nxt.*;
import lejos.nxt.comm.RConsole;
.
.
.
 RConsole.openBluetooth(40000);
 RConsole.println("Valor de i= " + i );
 RConsole.close();

Para utilizar a classe RConsole primeiro deve abrir a conexão entre o lego e o computador. Passando o tempo que o programa deve esperar para aceitar uma conexão (no caso 40 segundos), isso serve para dar tempo de abrir o programa de visualização no computador.
RConsole.openBluetooth(milisegundos para iniciar);
Quando o programa iniciar vá até a pasta “caminho da instalação do lejos/bin/nxjconsoleviewer.bat” , escolha o tipo de conexão e mande conectar.
Veja as demais formas de conexões no LINK.
Depois basta ir mandando as mensagens para serem mostradas e no final feche a conexão.

Share

Minha estrutura de projeto básica para sites e apps em flash

Sempre que começo um projeto em flash, uso sempre o mesmo conjunto de arquivos padrão, que engloba a estrutura de pastas e arquivos do loading, já que isso tem em todos os projetos em flash.

Não sei se essa é a maneira mais correta de se fazer, mas para mim está dando certo.

Uso seguinte estrutura de pastas:

src- onde guardo os arquivos *.as

deploy- onde é gerado os arquivos *.swf, *.html e onde ficam todas as imagens que serão lidas, arquivos de scripts *.php etc…

O objetivo dessa pasta é separar os arquivos fonte os arquivos compilados, isso facilita na hora de fazer o upload, bastando selecionar todos os arquivos que estão dentro dela e enviar.

fla- onde guardo os arquivos *.fla

Como utilizo a IDE eclipse para programar no flash, o eclipse cria algumas pastas e arquivos de ajuda .

Na pasta fla contém um arquivo chamado Main.fla, que tem um movieclip chamado carregador, com uma animação de 100 frames para ser tocada de acordo com a porcentagem de carregamento, quando termina de carregar esse movieclip some usando a biblioteca TweenLite.

Lembrando que todos os movieclips que usarem LINKAGE devem ser colocados no frame 2 e desabilitado a opção de “Export in frame 1″, para entrarem na contagem do loading.

Estou colocando para download o projeto básico e as actions de loading e lógica de reposicionamento quando se altera o tamanho do stage.

Downloads

Projeto Básico

TweenLite

Share

Dica – Livro grátis de idéias para o Lego Mindstorms

Sempre que brinco com o meu lego eu penso se aquele encaixe que acabei de fazer está bom , se o esquema de eixos ficou o melhor possível , etc…
Gosto sempre de fazer seguindo a minha cabeça, mas as vezes eu apelo e dou uma olhada em um pdf muito bom de idéias chamado Tora no Maki criado por um japonês chamado ISOGAWA Yoshihito.
O negócio é show de bola, tem de tudo e te mostra várias possibilidades que nunca passou pela sua cabeça, vale a pena conferir.

Link para o DOWNLOAD:
Tora no Maki

Share

Tocar animação de trás para frente no Unity3D

Precisei fazer uma animação que deveria ser tocada normalmente se clicasse em um botão e se clicasse novamente ela voltaria a animação no sentido contrário.

Para isso temos que controlar a velocidade da animação alterando o parâmetro speed, 1 é o valor normal, 2 toca duas vezes mais rápido e assim vai, números negativos tocam de trás para frente.

Modificando o parâmetro speed para  um número negativo funciona apenas se a animação ainda não chegou no final, pois quando chegar no fim a propriedade time fica igual a zero, como se a animação estivesse voltado ao ponto zero.

Por exemplo , se formos tocar uma animação de 5 segundos, o time começa em 0 e vai passando os segundos até 5, eu imaginava que ao chegar no quinto segundo a animação pararia e o time continuaria no 5, mas o Unity não funciona assim, chegando no final a variável time fica 0.

Se você inverter a velocidade para -1 para fazer voltar ele irá fazer assim: time = 0, -1 , -2 … segundos e na realidade queremos que fique 5 , 4 ,3 , 2… .

Então o que devemos fazer é falar para o parâmetro time que ele está no fim da animação, negativar a velocidade e dar play:

animation["nome da animação"].time = animation["nome da animação"].length;
velocidade = -1;
animation.Play("nome da animação");

Fazendo isso ele toca de trás para frente a partir do fim da animação.
Clique na imagem abaixo para ver um exemplo funcionando.

O código usado foi:

//diz que vai começar tocando para frente
int velocidade = 1;
//objeto que contem a animação
public GameObject destino;
void OnMouseDown()    {
      //seta a velocidade
     destino.animation["Take 001"].speed = velocidade;
     //se quero que a animação volte e ela está parada no fim
     if (velocidade == -1 & destino.animation["Take 001"].time == 0){
           //digo que o tempo que a animação tem é o tamanho dela, já que quando ela chega no fim o time fica 0
          destino.animation["Take 001"].time = destino.animation["Take 001"].length;
      }
     //dá play na anime
     destino.animation.Play("Take 001");
     //seta a nova direção para a animação  no próximo clique
     velocidade *= -1;
}

DOWNLOAD
CLIQUE AQUI para baixar o exemplo

Share

Editar animação importada no Unity3D

Quando o Unity3D importa um arquivo que contêm animação, ele blinda esse arquivo e não permite que a animação seja editada usando o animation view.

Mas como tudo se dá um jeito, segue uma dica para contornar esse problema: duplique a animação, assim ela perde o link com o objeto e passa a ser editável.

Segue um passo-a-passo para isso:

1 - Localize o item de animação do arquivo importado.

2 - Vá em Edit / Duplicate ou simplesmente Ctrl+D.

3 - Renomeie o arquivo duplicado para ficar mais bonito.

4 - Selecione o arquivo que está na cena (se não estiver, coloque).

5- Vá até a aba inspector e localize a área Animation.

6- Troque o clip que está na variável Animation, selecionando a animação que foi duplicada.

7- Com o objeto selecionado na cena, abra a Animation view e troque a animação corrente que é apenas de leitura para a editável.

Pronto, você já pode editar tudo que quiser na animação.

Repare na imagem acima, o bloqueado deixa os nomes em cinza e travado e o que liberamos fica em branco.

Então é isso , até a próxima.

Share

PDA – Abrir 2 projetos do Unity3d ao mesmo tempo

Por Ezequiel Santana Junior

Um dos problemas do Unity3D é que por padrão podemos abrir apenas uma instância por vez, mas abrir um segundo projeto para poder olhar alguma coisa é muito útil.
Existe uma gambiarra para abrir mais instâncias as mesmo tempo, segue o passo-a-passo:

1- Abra o bloco de notas e escreva

“caminho do Editor do Unity3D” -projectPath “caminho da pasta do seu projeto”

No meu caso fica assim:

“C:\Program Files (x86)\Unity\Editor\Unity.exe” -projectPath “F:\trabalhos\furadeira\APP”

2- Clique em Arquivo/ Salvar como…

3- Coloque um nome para o arquivo com a extensão “.bat”, não esquecendo de selecionar “Todos os arquivos (*.*)”  do combobox Tipo: , senão ele salva como txt.

4- Clique em Salvar.

Depois disso é só abrir o Unity3D normalmente para o primeiro projeto e para o segundo execute o arquivo que acabamos de criar, irá abrir a segunda instância.

Ezequiel Santana Junior: Progamador de diversas linguagens entre elas Delphi e JavaScript, apaixonado por criar jogos e sempre que tem tempo livre joga Call of Duty no Garena.

Share

Unity 3D – Trocar logo do loading no webplayer

Essa semana um leitor do blog chamado Eskiel me perguntou se eu sabia como trocar o logo do loading no webplayer, eu não sabia, mas fiquei curioso e fui pesquisar, fiz alguns testes e estou colocando aqui o resultado.

Exemplo:

CLIQUE AQUI para ver funcionando.

Para fazer isso basta adicionar algumas linhas no html e alterar a linha que fala qual o arquivo *.unity3d será anexado no html, mas isso só é possível com o Unity 3D PRO.

var params = {
backgroundcolor: "A0A0A0",
bordercolor: "000000",
textcolor: "FFFFFF",
logoimage: "logotipo.png",
progressbarimage: "barraLoading.png",
progressframeimage: "fundoLoading.png"
};

unityObject.embedUnity("unityPlayer", "WebPlayer.unity3d", 600, 450 , params);

Uma breve descrição dos parâmetros:

backgroundcolor:  A cor de fundo da região do webplayer durante o carregamento, o padrão é o branco.

bordercolor:  A cor da borda de um pixel desenhado em torno da região do webplayer durante o carregamento, o padrão é o branco.

textcolor:  A cor do texto da mensagem de erro (quando o arquivo de dados não carregar, por exemplo). O padrão é preto ou branco, dependendo da cor de fundo.

logoimage:  O caminho para uma imagem de logotipo personalizado, a imagem do logotipo é desenhado centralizado na região do webplayer durante o carregamento.

progressbarimage:  O caminho para uma imagem personalizada usada como barra de progresso durante o carregamento. Largura da imagem da barra de progresso é cortado com base na quantidade de carga de arquivo completo, portanto, começa com uma largura em pixels zero e anima a sua largura original quando a carga está completa. A barra de progresso é desenhada sob a imagem do logotipo.

progressframeimage:  O caminho para uma imagem personalizada usado como fundo para a barra de progresso durante o carregamento.

DOWNLOADS:
Código Fonte – Download

Share