Dicas & Tutoriais · Software

Testando seu site para mobile no Windows com Electric Mobile Studio 2012

Para quem desejaria testar os recursos de um navegador mobile sem precisar de um dispositivo (iPhone e iPad), mas sim diretamente do PC, fica aqui a dica do Electric Mobile Studio 2012.

Eu tenho o Electric Mobile Simulator Professional, que é o antecessor deste Studio (que ainda não experimentei). Nele é possível simular muitas características desses dispositivos, como eventos touch start e endgeolocalização (simulação de GPS), HTML5 local storage, SQL e IndexedDB, além de integração com Visual Studio e debug de Javascript (no caso da versão Studio, não a Simulator).

Eu sempre o uso para testar layouts e eventos, e me satisfez bastante. Recomendo, até pelo bom preço que paguei na licença.

Você pode comprar através do site, disponível apenas para Windows.

Dicas & Tutoriais · Game design · Games

Dica de software: OGMO Level Editor, editor de níveis para games

Logo OGMODica da semana: OGMO Level Editor, level editor de código-aberto para Windows. O OGMO pode ser definido como um editor de níveis de propósito geral para games que gera arquivos em XML.

No OGMO você trabalho no esquema de projetos, sendo que para cada projeto você pode criar níveis contendo objetos relacionados a um jogo. É muito fácil de usar, qualquer um se entende com a ferramenta.

É muito fácil trabalhar com o OGMO. E no editor de níveis você adiciona, aumenta/diminui e rotaciona imagens ou pode desenhar os tiles no grid.

Deixei de lado o Inkscape (tentei usá-lo como level editor) por causa de detalhes chatos, estava muito burocrático, e então passei a usar o OGMO. Estou satisfeitíssimo: o XML é fácil de entender, o editor é bem organizado, é gratuito e versátil. Ainda faltam recursos mas já está ótimo para uso.

Recomendo este tutorial (em inglês), mas se quiser ver outros confira na página do projeto.

Se desejarem mais detalhes ou um passo a passo, postem aí nos comentários. Até a próxima 😉

Dicas & Tutoriais

Usando a mesa gráfica Wacom no Blender

Há uns três meses eu comprei uma mesa gráfica Wacom (modelo Bamboo Connect) e não poderia estar mais satisfeito: se antes eu sofria com as dores e limitações do mouse, tudo isso foi embora com o uso da mesa digitalizadora.

No entanto, ninguém é perfeito. Alguns softwares “empacam” com a mesa, não reconhecendo os cliques, como é o caso do programa TexturePacker (em que tenho que usar o mouse ou o botão do touchpad para os cliques – note que estou me referindo à versão Windows, não testei em outros sistemas).

Dicas & Tutoriais · Game design · Software

Usando o Inkscape como Level Editor

No post sobre o meu projeto de jogo atual eu mencionei que iria deixar de lado o Level Editor in-game para usar uma forma mais ágil de criar as fases do jogo. A solução então que já tinha na cabeça foi a de adotar o Inkscape para isso.

Não poderia ter sido mais feliz. Com o Inkscape, além de tornar a edição dos níveis mais robusta, fácil e agradável, o esquema da programação se tornou extremamente simples, ao contrário do complicado e limitado (em boa parte pelo tamanho da janela do game em Flash) editor in-game.

ActionScript · Dicas & Tutoriais · Flash

Detectando quais teclas estão pressionadas em ActionScript 3

É simples você saber qual tecla foi pressionada em ActionScript. Um pouco mais complicado é saber qual conjunto de teclas estão sendo pressionadas simultaneamente. Isto pode ser necessário em caso de games, como num de corrida, em que o usuário pressionará várias teclas ao mesmo tempo, como um botão para acelerar, outro para direcionar o carro, e assim vai.

Algumas bibliotecas oferecem esse recurso, como o CASALib. No entanto basta um código simples para isso. A seguir, segue um exemplo em que são mostradas num campo de texto as teclas que estão sendo pressionadas num momento. No campo de texto será exibido os valores keyCode (a representação da tecla em número da tabela ASCII) das teclas.

[as3]
// campo de texto informativo
var output:TextField = new TextField();

// as teclas pressionadas
var arr_teclas:Array = new Array();

// listeners que detectarão o pressionamento de teclas
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);

// tamanho do texto e adicionando ao stage
output.text = “Teclas pressionadas: “;
output.scaleY = output.scaleX = 2;
output.width = 300;
addChild(output);

function keyDown(evt:KeyboardEvent):void {
/* se não houver nenhuma tecla na array que
* corresponda à tecla pressionada,
* adiciona a atual à array */

if (arr_teclas.indexOf(evt.keyCode) < 0) { arr_teclas.push(evt.keyCode); } // exibe as teclas pressionadas atualmente output.text = "Teclas pressionadas: " + arr_teclas.join(); }function keyUp(evt:KeyboardEvent):void { /* Se a tecla deixou de ser pressionada, * busca ela na array e a remove */ if (arr_teclas.indexOf(evt.keyCode) >= 0) {
arr_teclas = arr_teclas.splice(0, arr_teclas.indexOf(evt.keyCode));
}

// exibe as teclas pressionadas atualmente
output.text = “Teclas pressionadas: ” + arr_teclas.join();
}
[/as3]

Veja o resultado a seguir, pressionando teclas (dê foco ao SWF clicando no quadro abaixo):

ActionScript · Dicas & Tutoriais

Criando um sistema de partículas simples com ActionScript 3.0

Há várias maneiras de como se criar partículas em Flash. Há desde bibliotecas que facilitam o trabalho e permitem criar efeitos excelentes (é o caso da Tweensy e a sua parte – ainda em beta – FX) até os tutoriais dificílimos disponíveis na Web, que geralmente envolvem muita matemática – e que são muito bons -, de sites como o Flash & Math.

No entanto, até que não é muito complicado criar efeitos simples usando bibliotecas como a TweenMax. Com uma quantidade enxuta de linhas é possível fazer efeitos interessantes.

A seguir, posto um exemplo bem simples, mas que serve para ilustrar que usar métodos e métodos para controle de tempo e criação de efeitos são desnecessários usando TweenMax:

[as3]
package
{
import flash.display.*;
import flash.events.*;
import com.greensock.*;

/**
* …
* @author Francisco Prado
*/
public class Main extends MovieClip
{
private var volume:int = 0;
private var particulas:Array = new Array();

public function Main():void
{
// inicia (ou desenha mais) “partículas”
desenharParticula();
}

private function desenharParticula():void {
var mc:MovieClip = new MovieClip();
mc.graphics.beginFill(Math.round(Math.random()*0x6666ff));
mc.graphics.drawCircle(0, 0, 5);
mc.graphics.endFill();

mc.x = 200;
mc.y = 300;

addChild(mc);

// fazendo as “partículas” subirem e desaparecerem
TweenMax.to(mc, Math.random() + 1,
{ bezier: [
{ x: mc.x, y: mc.y },
{ x: (Math.random() * 50) + mc.x, y: 250 },
{ x: (Math.random() * -50) + mc.x, y: 180 },
{ x: mc.x, y: 80 }],
orientToBezier:true, blurFilter: { blurX: 10, blurY: 10 }, alpha: 0, motionBlur:true,
onComplete: function removendo():void {
removeChild(mc);
mc = null;
}
});

// chama o método para adicionar novas partículas à cena
TweenMax.to(this, 0, { delay: 0.05, onComplete: desenharParticula } );
}
}
}
[/as3]

O código fará o efeito seguinte:

A ideia aqui não é mostrar necessariamente como fazer um sistema bonitinho de particulas, mas sim demonstrar que com uma linha do TweenMax é possível fazer um método para tempo e efeitos de cores e luz.

Usando ActionScript “puro” seria necessário apelar para uma variável Timer, uma outra linha para iniciar a contagem e uma função para manipular eventos no AS (TimerEvent).

Já com uma linha (no caso, a 48 do exemplo anterior) do TweenMax é possível fazer uma contagem (usando a propriedade de atraso delay) é possível fazer todas as coisas: o tempo e a chamada da função (no atributo onComplete é chamado o método que adicionará mais partículas).

A mesma situação na linha que fazem as partículas subirem e sumirem. Com o parâmetro bezier da TweenMax é possível fazer animações em curvas. Você pode conhecer mais efeitos testando nesta página, na seção Plugins.

Enfim, com um punhado de linhas é possível fazer efeitos bem interessantes, dispensando assim volumosos códigos chatos para caramba.

Acredito que, em se trantando de Flash – largamente utilizado na publicidade -, quanto menos linhas de código melhor, pois os prazos nem sempre são generosos (geralmente tudo é “pra ontem” 🙂 ) e eficiência é sempre fundamental.

Dicas & Tutoriais · Padrões Web

Editores de texto em JavaScript/HTML para uso no seu site

Editor de Texto em JavaScriptNesta postagem rápida falarei de editores de texto feitos em JavaScript de código aberto, para uso em sites, blogs, entre outros.

A maioria funciona de modos parecidos: basta você adicionar uma área de texto em HTML (<textarea></textarea>), ligar o arquivo JavaScript da biblioteca – podendo definir algumas características – e pronto.

Via Google são fáceis de encontrar, mas aqui vou aproveitar para falar a respeito de dois deles com quem já lidei: o TinyMCE e o NicEdit.

TinyMCE – provavelmente o mais popular, utilizado inclusive pelo WordPress, Joomla, entre outros. Talvez seja o que conheça melhor, não por ter usado em algum trabalho, mas por curiosidade (fucei sua documentação e experimentei criar plugin, entre outros). Gostei muito: bem completo, integrado com jQuery (permite usar código desta biblioteca sem grande conflito), fácil de usar, boa documentação, entre outros.

CKEditor – nunca usei, mas parece ser tão bom quanto o TinyMCE. A barra de ferramentas é bem completa, a interface é linda, além de já vir com versão em português. Só tenho dúvidas com relação à documentação: procurei e não encontrei. Além de tudo, ao que parece, vários recursos são pagos (?). Enfim, vale ficar de olho.

NicEdit – já usei este, na seção de comentários deste blog, até um tempo atrás. Retirei ele por “comer” as quebras de linha (as tags <br /> – o texto do comentarista ficava todo colado). Acho-o muito limitado, mas talvez seja o mais simples de se integrar. Para quem não quer lidar com muito código, talvez seja a melhor solução.

Enfim, acredito que podemos resumir assim: caso queira um editor completo e precise personalizá-lo, o TinyMCE é para você. Se você quer um editor bonitão, vá de CKEditor. Agora, se você não entende muito de Javascript nem de HTML, experimente o NicEdit.

E este é o fim da postagem. E caso queira sair, aperte o botão de “Fechar” do seu navegador! 😀

Dicas & Tutoriais

Brushes para Photoshop: como usar e onde encontrar

Quem tem que desenhar sites sabe que muitas vezes os prazos são exíguos e quanto mais uma tarefa é agilizada, melhor.

Por isso muitas vezes o jeito é se utilizar de ferramentas e recursos “pré-fabricados”. Não costumo usar o Photoshop para criação de layouts (para isso prefiro o Adobe Fireworks), mas como há muitos brushes (tipos de pincéis) disponíveis na Web para download, uso para criação de algumas partes, como efeitos de plano de fundo.

Dicas & Tutoriais · Padrões Web

Gráficos SVG no Internet Explorer usando uma biblioteca JavaScript

É conhecida a limitação do Internet Explorer no que diz respeito a padrões Web. Uma das mais conhecidas é sobre o suporte à exibição de gráficos vetoriais SVG. No entanto, existe uma biblioteca Javascript chamada svgweb que procura cobrir essa limitação.

Linkando a biblioteca a um arquivo ela substituirá a parte em SVG (que é suportada pelos outros navegadores populares, como Firefox, Chrome e Opera) por um arquivo em Flash, que irá exibir praticamente a mesma coisa. Em outras palavras: se a biblioteca reconhecer que o navegador suporta SVG, ela não fará nada, apenas deixa o SVG ser exibido normalmente; se ele perceber que é o IE 8 e anteriores (que não suportam SVG) que o usuário está usando ele irá substituir por um arquivo em Flash que exibirá o arquivo SVG, com todos as suas configurações, como animação e interatividade.

Testei alguns exemplos e achei bem interessante. Ainda não testei na minha máquina, e sim apenas os exemplos fornecidos no site do projeto, e cumpriu bem a tarefa.

Trata-se de uma solução interessante. O iPad, por exemplo, suporta SVG, mas não animações em Flash; já o IE é o contrário. Usando essa biblioteca podemos programar apenas uma vez (SVG com JavaScript) e rodar em qualquer navegador.

Fica a dica. 😉

Dicas & Tutoriais · Padrões Web

Usando jQuery para manipular arquivos SVG

Em uma postagem anterior falei da biblioteca Raphaël para criação de gráficos vetoriais SVG usando Javascript. Agora nesta postagem, demonstrarei como usar a popular biblioteca jQuery para manipular arquivos SVG, usando um plugin.

Utilizar este plugin, em detrimento de uma biblioteca mais específica, pode ser útil quando se está habituado a usar jQuery. No site oficial do projeto jQuery SVG você encontra diversos exemplos úteis.

Existe a documentação da biblioteca, no site, onde você encontra, bem organizadamente, métodos e atributos para utilizar a biblioteca.

Experimentei um pouco a biblioteca. Para testes, você deve baixar os arquivos Javascript específicos e direcionar corretamente a localização nas pastas de acordo com o seu computador. A seguir, um exemplo, em que baixei do site e modifiquei, adicionando um retângulo que responde aos cliques do mouse (repare nos parâmetros – entre chaves – a chamada do método alert).

[javascript]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>jQuery SVG – o Básico</title>
<style type="text/css">
@import "css/jquery.svg.css";

#svgbasics { width: 400px; height: 300px; border: 1px solid #484; }
</style>
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/jquery.svg.js"></script>
<script type="text/javascript">
$(function() {
// Ao ser carregado, chamará a função draw…
$(‘#svgbasics’).svg({onLoad: draw});
});

function draw (svg) {
// Desenhando um círculo…
svg.circle(75, 75, 50, {fill: ‘none’, stroke: ‘red’, ‘stroke-width’: 3});

// Criando um grupo com duas linhas…
var g = svg.group({stroke: ‘black’, ‘stroke-width’: 2});
svg.line(g, 15, 75, 135, 75);
svg.line(g, 75, 15, 75, 135);

// Desenhando um retângulo que, quando clicado, chama o método alert
svg.rect(g, 150, 100, 200, 100, 10, 10,
{fill: ‘yellow’, stroke: ‘navy’, strokeWidth: 5, onclick:"alert(‘Você clicou!’)"});
}

</script>
</head>
<body>
<h1>jQuery SVG – O Básico</h1>
<p>Página de exemplo</p>
<div id="svgbasics"></div>
</body>
</html>
[/javascript]

ActionScript · Dicas & Tutoriais

Usando SVG através do ActionScript – AS3 SVG Renderer

É possível carregar arquivos gráficos SVG (formato de arquivos de desenho em vetor, organizados em modo XML) através do ActionScript como se fossem Sprites.

A biblioteca AS3 SVG Renderer suporta boa parte dos recursos oferecidos pela linguagem SVG. Criada por um brasileiro (veja o blog), ela ainda não suporta o carregamento de arquivos de imagem (como JPEG, PNG, etc., um recurso disponível no SVG), o que não chega a atrapalhar em nada (haja vista que é possível carregar Bitmaps usando classes nativas do ActionScript). Muitos outros recursos estão disponíveis (desenhos de formas, linhas, transformações como rotação e inclinação, entre outros).

O uso da biblioteca é muito simples: basta carregar o arquivo como se fosse um XML, usando o package do ActionScript. O programa Adobe Flash torna-se dispensável.

O exemplo a seguir carrega e exibe um SVG carregado a partir de uma URL qualquer.

Dicas & Tutoriais · Padrões Web

Usando Raphaël para geração de SVG através de Javascript

Neste post irei abordar como usar a biblioteca Raphaël para a geração de gráficos vetoriais em SVG, usando apenas Javascript. Vale lembrar que, apesar de ser uma maneira aberta de se gerar gráficos em vetor, o uso de SVG não está disponível para navegadores como Internet Explorer 8 e versões anteriores, além de “renderizar” de maneiras um pouco distintas em navegadores como Chrome, Firefox e Opera.

Para usar esta biblioteca, é necessário que você baixe o arquivo Javascript no site oficial do projeto. Há um plugin para esta biblioteca destinado à geração de gráficos. A documentação é bem direta e completa, o que facilita muito o aprendizado, contendo a explicação dos seus métodos.

Veja o exemplo a seguir. Repare que o arquivo Javascript de Raphaël está no mesmo local do arquivo HTML e que não usamos nada de HTML e CSS na geração dos gráficos – apesar do SVG permitir formatação via folha de estilos.

[javascript]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Raphaël – Modo de usar</title>
<script src="raphael.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
window.onload = function () {
// Cria um painel do tamanho 800×600, na posição x=50 e y=50
var paper = Raphael(50, 50, 800, 600);

// Círculo na posição x=50, y=40 e com 10 de raio
var circle = paper.circle(50, 40, 10);
// Define o preenchimento do círculo em vermelho
circle.attr("fill", "#f00");

// Define a linha de contorno como branca
circle.attr("stroke", "#fff");

// ————————-

// Criação de um retângulo
var rectangle = paper.rect(100,50,100,100,0);

// Definindo vários atributos de uma só vez
rectangle.attr({
"fill": "#00f",
"stroke": "#0f0"
});

// Rotacioando o objeto
rectangle.rotate(45);

};
</script>
</head>
<body>

</body>
</html>
[/javascript]

Este código irá gerar um painel SVG (paper), criará um círculo vermelho (circle) e um retângulo azul rotacionado em 45 graus (rectangle).

Raphaël - resultado do exemplo
Resultado do exemplo.

Espero ter ajudado. Até a próxima! 😉

ActionScript · Dicas & Tutoriais

Mais sobre ActionScript 3.0 – programas, bibliotecas e dicas

Para reanimar um pouco este blog vou postar aqui algumas dicas de programas e de bibliotecas para quem programa/quer programar com ActionScript 3.0.

Programas

FlashDevelop – não conheço todas as IDEs para ActionScript, mas acredito que esta seja uma das melhores – senão a melhor. Ela automaticamente importa os packages de classes que você instancia, seu auto-complete é poderosíssimo, além de ser leve e permitir a compilação usando o Flex SDK (para configurar isso veja este tutorial).

Funciona em Windows (não sei se há versão para Mac, e não acredito que rode/possa rodar em Linux, uma vez que ele foi criado sobre o Microsoft .NET Framework – tentei emular e não deu certo).

Ambientes de Desenvolvimento para ActionScript – aqui segue uma lista com outros programas (e seus links) para programar em ActionScript.

Flex SDK – necessário ter caso queira compilar seus programas via FlashDevelop, entre outros. É opensource.

Tutoriais

Wikilivro em português – wikilivro sobre AS 3.0 hospedado no Wikilivros (da Wikipédia).

Tutorial do Mário Santos (em PDF) – parte 1 e parte 2 – talvez os mais populares tutoriais sobre AS 3.0 em português (de Portugal) da Web.

Bibliotecas

Você pode ver uma postagem minha antiga sobre algumas bibliotecas. Há sobre bibliotecas 3D apenas. Aqui vou indicar mais algumas bibliotecas que talvez não sejam tão conhecidas.

AS3ISOlib – biblioteca para geração de gráficos isométricos. A biblioteca é bem fácil de se usar e bem interessante. Ela foi feita para ser usada com o Adobe Flash apenas. Porém, mudando algumas propriedades de umas classes consegui fazer ela ser usada com o FlashDevelop (em outras palavras, mudei os objetos Vector, disponíveis apenas nos Adobe Flash CSx para Array, fácil. 😛 ).

JigLibFlashengine para simulação de física em 3D. Ela é ligada para fazer simulação usando em conjunto a biblioteca Papervision 3D, estritamente – mas há “plugins” para se utilizá-la em conjunto com Away3D, Sandy3D e outras.

O problema dela é esse: você não pode usá-la livremente (sem estar em conjunto com uma biblioteca 3D – você tem que estar atrelado a uma…). Os autores escreveram no blog deles que ainda pretendem mudar a arquitetura da biblioteca a fim de torná-la utilizável por qualquer outro modo – o que é uma boa notícia.

WOW 3D – outra engine de física em 3D. É baseada na APE, uma outra engine porém 2D. Esta aqui usa em conjunto a biblioteca Sandy3D para geração de gráficos 3D, apenas.

Dicas & Tutoriais

Instalando o Ubuntu Linux 9.10 no Windows sem complicação

Muita gente tem curiosidade de conhecer o sistema operacional Linux. Mas, para quem não é muito do ramo, teme ter que lidar com programas complexos, códigos esquisitos e tudo mais. Porém, com o lançamento da versão Ubuntu Linux, a experiência de se utilizar um sistema alternativo se tornou bem mais fácil e simples.

Tudo o que você tem que fazer é baixar o arquivo de imagem (.iso) do Ubuntu e então gravá-la num CD. Você pode rodar o Ubuntu direto do CD: o sistema irá ler o CD e “criará” o Ubuntu na memória do PC. Este método é interessante para quem só quer apenas conhecê-lo; por rodar do CD este método é lento e oferece recursos limitados (fraco desempenho).