Podrïas postear el stackTrace...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú public enum Direction
{
Up=0, Left, Down, Right
}
SetStyle(ControlStyles.SupportsTransparentBackColor, true); //auto descriptivo
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // Siempre true si usamos UserPaint, con esto evitamos flicker en el formulario
SetStyle(ControlStyles.UserPaint, true); //Auto descriptivo
SetStyle(ControlStyles.DoubleBuffer, true); // Habilita el double buffer en el control
SetStyle(ControlStyles.Opaque, true);
t.Interval = board.Interval; //define la velocidad del juego, si cambia de nivel, el interval se reduce por lo que va "más" rápido.
board.GoStep(); //Ya veremos que hace esto más adelante
board.UpdateArray(); //actualiza el array del juego
this.Refresh(); // como se hizo una modificación en el array se refresca el control para que se invoke el evento paint.
e.Graphics.Clear(Color.Black); //borra todo y lo pinta de negro
DrawBoard(e); // dibuja el tablero como tal
DrawSnakeAndLevel(e); // self descriptive -.-
DrawStat(e); // dibuja el score y eso..
private void DrawSnakeAndLevel(PaintEventArgs e)
{
if (Board.WaitForUser)
return;
int[,] array = board.Array;
//iteramos todos las posiciones del array y vemos cada valor y pintamos lo correspondiente
for (int y = 0; y < boardSize; y++)
{
for (int x = 0; x < boardSize; x++)
{
Brush tmpColor = null;
if (array[x, y] == 1)
tmpColor = Brushes.Green; //1 es la culebra buena, es decir el player, y es verde :D
else if (array[x, y] == 5)
//si es 5 es una manzana, por lo que no pintamos un punto de un color e especial
//la manzana se pinta dento de ese method por lo que le referenciamos el e.Graphics
DrawApple(e.Graphics, Brushes.Red, Pens.Green, x, y);
else if (array[x, y] == 99)
tmpColor = Brushes.Blue;
else if (array[x, y] == 50)
tmpColor = Brushes.Yellow;
else if (array[x, y] == 1000)
DrawApple(e.Graphics, Board.m_extraItem.Color, Pens.Green, x, y); // 1000 es un extra item!
if (tmpColor != null)
e.Graphics.FillRectangle(tmpColor, (x * lineSize) + 6, (y * lineSize) + 31, lineSize, lineSize);
}
}
}
private void DrawApple(Graphics e, Brush brush, Pen pen, int x, int y)
{
//bueno, intento dibujar una forma de manzana, solo Dios sabe que hice en el code xD
e.FillPie(brush, (x * lineSize) + 5, (y * lineSize) + 30,
lineSize + 1, lineSize + 1, -60, 330);
e.DrawLine(pen,
(x * lineSize) + lineSize / 2 + 5, (y * lineSize) + 30 + lineSize / 2,
(x * lineSize) + lineSize + 5, (y * lineSize) + 30);
e.DrawLine(pen,
(x * lineSize) + lineSize / 2 + 5, (y * lineSize) + 30 + lineSize / 2,
(x * lineSize) + lineSize + 5, (y * lineSize) + 30 - 1);
e.DrawLine(pen,
(x * lineSize) + lineSize / 2 + 5, (y * lineSize) + 30 + lineSize / 2,
(x * lineSize) + lineSize + 5, (y * lineSize) + 30 - 2);
}
private void DrawBoard(PaintEventArgs e)
{
// nada mas que un rectangulo azul xD
e.Graphics.DrawRectangle(Pens.Blue, 5, 30, boardSize * lineSize+1, boardSize * lineSize+1);
}
private void DrawStat(PaintEventArgs e)
{
//puros strings , es decir los scores.. bastante self descriptive el code..
e.Graphics.DrawString("Level: " + board.LevelIndex.ToString(), new Font("Arial", 10), Brushes.LightBlue, 5, 5);
e.Graphics.DrawString("Lives: " + ((board.Lives < 0) ? "0" : board.Lives.ToString()), new Font("Arial", 10), Brushes.LightBlue, 110, 5);
e.Graphics.DrawString("Score: " + Board.Score.ToString().PadLeft(9,'0'), new Font("Arial", 10), Brushes.LightBlue, 199, 5);
if (Board.Lives == 0)
e.Graphics.DrawString("Game Over", new Font("Arial", 20), Brushes.LightBlue, (boardSize * lineSize) / 4, ((boardSize * lineSize) / 2)+40);
if (Board.WaitForUser)
e.Graphics.DrawString("Press any key to start level " + Board.LevelIndex.ToString(), new Font("Arial", 15), Brushes.LightBlue, 20, ((boardSize * lineSize) / 2) + 15);
e.Graphics.DrawString("Items Left: " + board.LevelTotalItems.ToString(), new Font("Arial", 12), Brushes.LightBlue, 120,boardSize * lineSize +40);
}
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;
this.Activate();
short january =0X01 ;// binario es 0000000001
short october =0X200 ;// binario es 1000000000
long result=january & october ; //binario es 1000000001