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:
 

c# xna movendo o sprite na tela

On January 10, 2009, in games, programacao, by athanazio
0

bem ainda não é quase nada, mas pelo menos os sprite esta se movendo na tela =)

Tem a classe Sprite que eh uma variação da classe usada em http://www.xnadevelopment.com/tutorials/thewizard/theWizard.shtml e a classe principal do jogo em si Game1.

o que acontece eh que no método update() da classe do jogo verifico o estado do teclado e de acordo com este estado chamo métodos do objeto chicken para mover pela tela.

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace ChickenMaze
{
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Sprite chicken;

public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = “Content”;
}

protected override void Initialize()
{
chicken = new Sprite(“chicken”);
base.Initialize();
}

protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
chicken.LoadContent(this.Content);
}

protected override void UnloadContent()
{
}

protected override void Update(GameTime gameTime)
{
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();

UpdateKeyboard(Keyboard.GetState());
base.Update(gameTime);
}

public void UpdateKeyboard(KeyboardState keyboardState)
{

if( keyboardState.IsKeyDown(Keys.Left)){
chicken.Left();
}

if (keyboardState.IsKeyDown(Keys.Right))
{
chicken.Right();
}

if (keyboardState.IsKeyDown(Keys.Down))
{
chicken.Down();
}

if (keyboardState.IsKeyDown(Keys.Up))
{
chicken.Up();
}

}

protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
chicken.Draw(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
}
}
}

e na classe Sprite esta a carga da imagem e posicionamento da imagem na hora do desenho.

using System;
using System.Collections.Generic;
using System.Text;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace ChickenMaze
{
class Sprite
{
private int speed = 5;
private string assetName;

public Sprite(string assetName)
{
this.assetName = assetName;
}

//The current position of the Sprite
public Vector2 Position = new Vector2(0,0);

//The texture object used when drawing the sprite
private Texture2D mSpriteTexture;

//Load the texture for the sprite using the Content Pipeline
public void LoadContent(ContentManager theContentManager)
{
mSpriteTexture = theContentManager.Load(this.assetName);
}

//Draw the sprite to the screen
public void Draw(SpriteBatch theSpriteBatch)
{
theSpriteBatch.Draw(mSpriteTexture, Position, Color.White);
}

public void Left()
{
Position.X -= speed;
}

public void Right()
{
Position.X += speed;
}

public void Down()
{
Position.Y += speed;
}

public void Up()
{
Position.Y -= speed;
}

}
}

Tagged with: