unity3d passo 2

On September 25, 2009, in games, programacao, unity3d, by athanazio
2

unity screenshot passo 2

Mais coisas interessantes no Unity3D, algumas teclas de atalho interessantes : a sequencia QWER muda a forma de manipulacao dos objetos, e de acordo com a forma que estiver selecionada, quando vc clica no fundo muda a forma como arrastar o mouse sobre a tela vai mudar a sua visualização da scene enquanto estiver trabalhando. isto me deu uma dor de cabeça de primeira heheheh como me achar com os oibjetos 3D :)

outra coisa nova descoberta, como debugar ! basta usar o objeto Debug :) facil facil.

Fiz um script para um elevador, funcionou como esperado veja soh como ficou o codigo :

// smaller value
var start:float;

//greater value
var end:float;
var speed: int = 15;
var direction: int = 1;
var sleep:float = 4000;
var elapsed:float = 0;

function Update () {

	var y = speed * Time.deltaTime * direction;

	// check if the limit is reach and inverse the direction
	if( elapsed <= 0 ){
		if( direction == 1 ){
			if( transform.position.y + y > end ){
				transform.position.y = end;
				elapsed = sleep;
				direction = -1;
			}else {
				transform.Translate(0 , y, 0 );
			}
		} else {
			if( transform.position.y + y < start ){
				transform.position.y = start;
				elapsed = sleep;
				direction = 1;
			}else {
				transform.Translate(0 , y, 0 );
			}
		}
	} else {
		elapsed = elapsed - Time.deltaTime;
	}

	Debug.Log(elapsed);
}

Este codigo eh arrastado sobre um gameObject que no caso eh um plano, e determino o Y inicial do objeto e o Y final, o tempo que o elevador fica parado em sleep, e a velocidade que vai se deslocar. fica assim na interface :
unity script details elevator

Outro aprendizado importante foi como criar materiais, usa Asset / Create / Material e pronto ! dai vc configura os detalhes do material e aplica o material sobre o objeto desejado.

o controle do personagem ainda esta engraçado heheheh tipo quando cai e vira de cabeça para baixo inverte tudo :) ainda estou pensando no que fazer, estou com as seguintes opções em mente :

  • Nao deixar o personagem virar
  • Controlar se ele virou e inverter a transformacao para refletir que esta virado
  • Mudar a forma de controlar para ficar parecido com um carro, usando as setas para controlar o volante, e acelerando com seta para cima
Tagged with:
 

unity3d passo 1

On September 22, 2009, in games, programacao, unity3d, by athanazio
0

movebox1
Esta eh a primeira aventura com o Unity3D, graças a um esperto tutorial do Erick consegui dar os primeiros passos no Unity3D !! o resultado pode ser encontrado aqui : move-box1

Quero registrar alguns passos importantes que aprendi :

1. O chao vira chao quando vc chama ele de chao :) hehehehe neste exemplo adicionei um cubo usando a opcao : ‘Game Object / Create Other / Cube’, fiz ele ficar mais larguinho para dar mais estabilidade ao movimento e adicionei o component de corpo rigido atraves de : ‘Component / Physics / Rigid Body’ pronto isto bastaria para todos serem felizes e o cubo nao passar do chao quando dah o play.

2. nao entendi ainda como usar um Shader para cada elemento heheheh quando mudo a cor do plano muda a cor da rampinha que fiz

3. adicionei um codigo javascript e arrastei sobre o cubo, pronto !! o metodo update implementado fica valendo para o objeto, e uma variavel que declarei no codigo : var speed:int ficou on inspector do objeto, simplim simplim

olha o codigo usado para o controle de teclado:

var speed: int;
function Update () {
    var x = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
    var y = 0;
    var z = Input.GetAxis("Vertical") * speed * Time.deltaTime;
    transform.Translate(x , y, z );
}

4. e este links salvaram o dia
documentacao sobre o gameplay
documentacao sobre a fisica
documentacao sobre o input
post sobre movimentacao com teclas

por enquanto eh soh, depois tem mais

Tagged with:
 

javascript no IE

On January 27, 2009, in trecos, by athanazio
0

e minha vida com o javascript debugger + firebug no mozilla era bem fácil e eu não sabia .. até que sabia hehehe, e precisei fazer com o que os mesmos scripts + css funcionassem no IE.. socorrroooo. =)

acabei achando umas ferramentas bem legais:

esta toolbar da MS eh umas mão na roda
http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en

e tem este outro carinha
http://www.debugbar.com/

mas a barra da MS da de 10 a zero ! =)

estes dois arquivinhos salvam a vida neste quesito de javascript com IE
ms_script_debugger
ms_dev_toolbar

use por sua conta e risco !

Tagged with:
 

google gadget – div com links

On November 26, 2008, in programacao, by athanazio
0

Olás apesar de saber que este problema é bem específico, vou discutir a solução aqui assim mesmo, vai que alguém passa pelo mesmo … =)

é o seguinte, imagina uma div que precisa aumentar de tamanho quando passamos o mouse por cima, e reduzir quando saimos com o mouse de cima, pois bem isto seria bem facinho, bastava implementar algo no onmouseover, e o onmouseout e todo ficam felizes.

mas como nada é simples, tem dois labels dentro da div que são links, e quando o mouse vai sobre eles dispara o método onmouseout da  div que os contém … assim foi necessário implementar uma solução que pudesse ter labels como links dentro de uma div expansível.

O jeito foi tratar os clicks do mouse na div e delegar para o comportamento de cada label, e para evitar diversos ifs com os nomes das labels preferi usar uma regra de nomes, onde o metodo chamado eh o nome do componente seguido de _onclick().

Este techo de codigo eh o tratador de cliques da div

function div1_onclick() {

for( var n=0; n < div1.children.count; n++ ){

var child = div1.children(n);

if( child.y < event.y
&& child.y + child.height > event.y ){

 

 

eval(child.name+'_onclick();');
debug.trace(child.name);
}
}
}

Note que percorro a lista de filhos da div, e baseado no event.y comparo se o o mesmo esta entre o y e o y+ altura do componente filho e assim identifico o nome do mesmo e uso para montar o nome do método a ser chamado, e com o método eval() executo o referido método. simples não ? =)

segue em anexo o codigo do google gadget para fazer isto.

testoverarea

E o gadget pronto para ser instalado

testoverarea gadget

Tagged with:
 

vassourada no cache

On November 11, 2008, in Uncategorized, by athanazio
0

Arre cansei de sofrer ! toda hora verificando se o bendito arquivo javascript atualizou ou não !!
isntalei este maravilhoso add-on pro firefox !! https://addons.mozilla.org/en-US/firefox/addon/1801

Tagged with:
 

sioti javascript integration

On September 2, 2008, in games, sioti, by athanazio
0

thinking about the script engine to sioti, nothing better than javascript, and to do this I’m looking at rhino from mozilla.

For me my big concern about scripting, is what level of access the script will have to the virtual machine, so it seems that Rhino have clear way to filter what classes can and cannot be used by the script, by defining a ClassShutter, where the method visibleToScripts() will filter wich class can be used in the script, by default all Java classes can be used, so create this filter is a must to allow good behavior of future plugins :)

Also have to check if is necessary to seal the context where the script will be running.

My idea is having the basic behavior of the game implemented in java, in a client that has to be downloaded, to avoid map loading thru the web, have the rules in the server, and interface definition + event handling created with javascript.

creating like this, the game already born with a plugin capability, feature that usually requires an extra effort in the future, due to decisions like, what features to publish to the script, creating the UI using the script, the needs will happens at the beginning, and the maturity of the script will come naturally.

Tagged with: