jueves 3 de diciembre de 2009

A que pereza...

Que onda, ya ni deben visitarme, lo tengo tan abandonado esto.

A ver, termine la escuela sin llevarme ninguna, teoricamente tendria que acutalizar mas por que termine la escuela, pero me cambiaron el internet y ahora volvi a viejos vicios, como el Quake 3 y la descarga abusiva de torrents.

Me vi una serie de anime muy pero muy buena llamada School Days, veanla:


Empeze a probar el Unreal Engine, a lo mejor mas adelante cuando lo tenga mas claro hare tutoriales. Hablando de eso, por ahi mañana me ponga a hacer otro de XNA 2D.

Y por ultimo... que peli recomiendan para ver?.

Saludos!.

lunes 23 de noviembre de 2009

XNA 2D - Per Pixel Collision

Haciendo lo que me quedo en el tendedero.

La colisiones por pixel, son distintas a las colisiones que normalmente usamos(bounding box y bounding sphere. Esta colision, chequea cada pixel de la textura, y si esta se cruza con otro pixel de otra textura, hay colision.

Para este ejemplo, usaremos 2 texturas.

Variables:

Texture2D _text1;
Color[] _colortext1;
Rectangle _rect;

Texture2D _text2;
Vector2 _postext2;
Color[] _colortext2;
Rectangle _rect2;

bool _haycollision = false;

Los Color[] nos guardara cada pixel de nuestra textura. Rectangle nos guardara la textura, lo usaremos para tomar varios datos de la textura que retiene.

Initialize:
_text1 = Content.Load<Texture2D>("text1");
_colortext1 = new Color[_text1.Width * _text1.Height]; //iniciamos el vector con pocisiones igual a los pixeles de la textura
_text1.GetData(_colortext1); //le pasamos todos los datos de la textura al _colortext1
_rect = new Rectangle(200, 200, _text1.Width, _text1.Height);

_text2 = Content.Load<Texture2D>("text2");
_postext2 = new Vector2(300, 400);
_colortext2 = new Color[_text2.Width * _text2.Height];
_text2.GetData(_colortext2);
_rect2 = new Rectangle((int)_postext2.X, (int)_postext2.Y, _text2.Width, _text2.Height);

Metodo para chequear colision por pixeles:
bool CheckCollision(Rectangle rect1, Color[] colorrect1, Rectangle rect2, Color[] colorrect2)
{
int arriba= Math.Max(rect1.Top, rect2.Top);
int abajo= Math.Min(rect1.Bottom, rect2.Bottom);
int izquierda = Math.Max(rect1.Left, rect2.Left);
int derecha = Math.Min(rect1.Right, rect2.Right);


for (int y = techo; y "<" piso; y++)
{
for (int x = izquierda; x "<" derecha; x++)
{
Color pixel1 = colorrect1[(x - rect1.Left) + (y - rect1.Top) * rect1.Width];
Color pixel2 = colorrect2[(x - rect2.Left) + (y - rect2.Top) * rect2.Width];

if (pixel1.A != 0 && pixel2.A != 0)
{
return true;
}
}
}
return false;
}

Lo primero que hacemos es crear variables para que nos guarde las pocisiones mas alta y mas baja, la "mas derecha" y la "mas izquierda". Luego, se crea dos for, uno que recorra los pixeles en x, y otro en y. Creamos dos variables del tipo Color que tendran la informacion del pixel que se recorre. Por ulitmo, chequeamos si el alpha del pixel, no es igual a 0. De ser asi, significa que hay collision. Y el bool nos retorna un true, caso contrario, nos devuelve un false.

Update y Draw:
protected override void Update(GameTime gameTime)
{
KeyboardState ks = Keyboard.GetState();
if (ks.IsKeyDown(Keys.Up)) _rect2.Y -= 3;
if (ks.IsKeyDown(Keys.Down)) _rect2.Y += 3;
if (ks.IsKeyDown(Keys.Left)) _rect2.X -= 3;
if (ks.IsKeyDown(Keys.Right)) _rect2.X += 3;

if (this.CheckCollision(_rect, _colortext1, _rect2, _colortext2))
{
_haycollision = true;
}
else
{
_haycollision = false;
}

base.Update(gameTime);
}

protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);

spriteBatch.Begin();
spriteBatch.Draw(_text1, _rect, Color.White);
spriteBatch.Draw(_text2, _rect2, Color.White);
spriteBatch.DrawString(_font, _haycollision.ToString(), new Vector2(50, 50), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}


Saludos!.

jueves 19 de noviembre de 2009

Como hacer para que el msn NO actualize

Tire a la mierda el nuevo msn, tira errores cada dos por tres en la instalacion, y me puse a googlear si habia alguna forma de esquivar la acutalizacion, y resulta que si:

1- Cerrar el msn
2- Ir a la carpeta del msn, donde esta le ejecutable
3- Hacerle click derecho, he ir a propiedades
4- Ir a la solapa de "Compatibilidad"
5- Cambiarle la compatiblidad hacia Windows 2000, aplicar, aceptar.

Y como por arte de magia(en serio, vaya a saber por que por eso deja de actualizarse), no pide mas que actualize. Que se metan el msn 2009 por el orto los de microsoft.


Nos vemos

Aun no...

... me aconstumbro al 64 bit, todo anda para el orto, y con mi internet no puedo actualizar ni mierda. Mejor vuelvo al xp de 32 bit y a la mierda con el 7, al menos hasta uqe consiga un internet mas rapido.

miércoles 18 de noviembre de 2009

Music Music Nª1



http://www.youtube.com/watch?v=nD3Hhzgqkrc (no me dejaba poner el insert code)




Actulizando el windows


El Lunes me compre el windows 7, en el Rivadavia Park y auriculares. Pero como el lunes no habia luz, lo tube que instalar el martes, ayer.

Ordeno todos los archivos que no quiero perder, la carpeta Descargas/otros se hiso mas grande aun, lo hice diciendo "luego ordeno todo lo que hay aca", eso fue como en junio o antes. Y aun no lo ordene. Le pregunte a un amigo cual de x64 y x86 era la arquitectura 64bit. Y empeze a instalar.

Se instalo bastante rapido. Hago las boludeces de serial y demas. Y ya esta, windows 7 instalado. Por suerte vino con todos los drivers instalados, con un amigo creiamos que mi mother al ser de ABIT(esta empresa ya se fundio) no encontrariamos los drivers actualizados. Pero por suerte los instalo todos.

Instalo el msn que tenia por ahi, y paf, tenia que actualizarlo, y como mi internet es una bazofia, tardo como 2 horas en descargar el msn. Luego, instalo en google chrome, una que otra boludes. Y ya, tenia el windows con lo basico que uso.

Pero, no se por que, el C# que tengo, el 2008, no me lo quiere instalar, me tira error instalando el primer item. A lo mejor el que tengo yo es para 32 bit, quien sabe, el punto es que tengo que volver a descargarlo.

Por ahora, solo me ha tirado una pantalla azul. Pero por ahora va bien, solo tengo que acostumbrarme a la interfaz, yo siempre use XP. Asi que esto para mi es nuevo.

Saludos!.

martes 17 de noviembre de 2009

La luz ha vuelto

Aca se corto la luz, y no solo en mi barrio, si no en muchos otros lados. La razon?, quien sabe. El punto es que luego de 2 dias sin luz y de leer bajo el abrigo de una luz de emergencia, vuelve.

Justo el domingo, estaba haciendo un tutorial de Per pixel collision, ahora se cagan.(veo si lo termino hoy).

Me voy al cole, escuchen este tema:

Saludos!.