martes, 17 de junio de 2014

El Demo del Día: Animación usando Sprites en Windows Forms

Animación usando Sprites en Windows Forms

El Demo de hoy es una animación en Windows Forms usando un sprite o archivo con una secuencia de imagenes. Los sprites permiten reducir el numero de accesos a archivos para una aplicación que trabaja con imagenes, sobre todo es muy usado en los juegos.

Paso 1: Archivo con el Sprite a Animar

En este ejemplo tenemos un archivo llamado "Caminante.jpg" que tiene 3 filas x 6 columnas, es decir 18 cuadros, pero en este caso solo hay 14 imágenes diferentes. La primera fila tiene 6 imágenes con posiciones hacia la derecha y la segunda fila tiene 6 imágenes con posiciones hacia la izquierda.
El archivo tiene una dimensión de 624 x 450 pixeles por lo que cada imagen seria de 104 de ancho por 150 de alto.



Paso 2: Diseño del Formulario Windows Forms en .NET

Debemos crear una Aplicación en C# para Windows Forms llamada: "Animacion_Sprite" y renombrar el formulario a "frmCaminante".
Primero agregar un control PictureBox llamado "picCaminante" de tamaño "50x50", luego 2 controles RadioButton: "rbDerecha" y "rbIzquierda".
Finalmente, agregar un Timer llamado: "tmrAnima" con la propiedad Enable en "true" y el Interval en "100" milisegundos, tal como se muestra en la figura:



Paso 3: Código del Formulario en C# .NET

Escribir el siguiente código en el formulario, la función cargarImagen esta asociada al evento "load" del formulario y la función "animarCaminante" esta asociado al evento "Tick" del Timer. Además la función "caminarDerecha" esta asociada al radio button "rbDerecha" y la función: "caminarIzquierda" esta asociada al radio button "rbIzquierda".

    public partial class frmCaminante : Form
    {
        Bitmap bmp;
        Rectangle rect;
        int posX,posY,x,c;

        public frmCaminante()
        {
            InitializeComponent();
        }

        private void cargarImagen(object sender, EventArgs e)
        {
            bmp = new Bitmap("Caminante.png");          
        }

        private void animarCaminante(object sender, EventArgs e)
        {
            rect = new Rectangle(posX, posY, 104, 150);
            picCaminante.Image = bmp.Clone(rect, bmp.PixelFormat);
            if (rbDerecha.Checked) animarDerecha();
            if (rbIzquierda.Checked) animarIzquierda();
        }

        private void animarDerecha()
        {
            posX += 104;
            c++;
            picCaminante.Left = x;
            if (x <= this.Width) { x += 10; }
            else { x = -picCaminante.Width; }
            if (c == 5)
            {
                c = 0;
                posX = 104;
            }
        }

        private void animarIzquierda()
        {
            posX += 104;
            c++;
            picCaminante.Left = x;
            if (x>-picCaminante.Width) { x -= 10; }
            else { x = this.Width; }
            if (c == 5)
            {
                c = 0;
                posX = 104;
            }
        }

        private void caminarDerecha(object sender, EventArgs e)
        {
            if (rbDerecha.Checked)
            {
                c = 0;
                posX = 104;
                posY = 0;
            }
        }

        private void caminarIzquierda(object sender, EventArgs e)
        {
            if (rbIzquierda.Checked)
            {
                c = 0;
                posX = 104;
                posY = 150;
            }
        }
    }

Paso 4: Ejecución del Formulario Windows Forms

Después de escribir el código de arriba, crear el archivo: "Caminante.jpg" en la carpeta bin/Debug de la aplicación y ejecutar pulsando F5. Por defecto la animación se inicia a la derecha, para cambiar seleccionar el radio button.


Descarga:
Demo04_Animacion_Sprite

Libro La Biblia de Visual Basic .NET - Preguntas de Repaso - Capítulo 4

Preguntas de Repaso: Desarrollando Aplicaciones Windows Forms

1.    Cual es la ventaja de crear aplicaciones Windows con Windows Forms?

2.    Qué propiedades del formulario deben configurarse para que no pueda modificarse de tamaño?

3.    Qué propiedad del formulario debe configurase para mostrar en el formulario un gráfico en forma de elipse o cualquier forma deseada?

4.    En qué evento del formulario debe programarse la creación de un gráfico?

5.    Menciona 3 controles básicos de Windows Forms.

6.    Qué propiedad del control TextBox permite limitar la cantidad de caracteres ingresados?

7.    De qué formas puede crearse un TextBox que permita ingresar una contraseña o password?

8.    Qué debe hacerse para que al dar Enter sobre cualquier control de entrada se dispare el procedimiento asociado al clic de un botón?

9.    De forma similar, qué debe hacerse para que al pulsar la tecla Escape se dispare el procedimiento asociado al clic de un botón de salida?

10. Qué se debe configurar en un control Label para que muestre el símbolo & como un carácter mas o literal.

11. Menciona 3 controles de listas de Windows Forms.

12. Cuál es la propiedad más importante de los controles de listas?

13. Menciona 3 métodos de la propiedad Items para manejar listas.

14. Menciona el evento más importante en el cual generalmente se programa cuando se selecciona un elemento de una lista.

15. Cuál es la forma mas recomendada de llenar los elementos de una lista.

16. Si la lista se va a llenar elemento por elemento qué métodos debe usarse antes y después de llenar la lista para evitar escribir cada elemento en pantalla?

17. Menciona los 2 controles de vistas en Windows Forms.

18. Cuál es la propiedad más importante del control TreeView?

19. Cuál es la propiedad más importante del control ListView?

20. Cuáles son las vistas que puede presentar el control ListView?

21. Cuáles son las propiedades donde se configuran las imágenes a mostrar en un ListView?

22. Cómo se llama el control Windows Forms que permite dividir el formulario en 2 partes, por ejemplo para separar a un TreewView de un ListView?

23. Qué control permite guardar una colección de imágenes?

24. Qué es un formulario MDI y cómo se crea en Windows Forms?

25. Cómo se puede cambiar el fondo de un formulario MDI?.

26. Qué propiedad del formulario MDI padre indica la cantidad de formularios hijos activos?

27. Qué bede configurarse en Visual Studio para trabajar con un formulario Login que al auntenticarse se cierre y abra un formulario MDI que cuando se cierre finalize toda la aplicación?.

28. Cúantos tipos de menús hay y cómo se crean en Windows Forms?

29. Qué propiedad es necesario configurar de un control para que se muestre un menú contextual?

30. Cómo se puede cargar dinámicamente un formulario teniendo como dato su nombre?

31. Qué tipo de control permite agregar cualquier control como opción o elemento de un menú?

32. Cómo se llama el control de Windows Forms que muestra un calendario con los días de un mes?

33. Menciona los 5 diálogos comunes de Windows que son componentes de Windows Forms.

34. Cómo se llama el método común que tienen todos los diálogos de Windows que permiten mostrar el diálogo en pantalla?

35. Qué propiedades comunes tienen los diálogos de archivos OpenFile Dialog y SaveFileDialog en Windows Forms?

36. Cuál es la propiedad más importante del diálogo de color?

37. Cuál es la propiedad más importante del diálogo de fuente?

38. Cómo se llama el diálogo que permite mostrar directorios?

39. Menciona las barras que se pueden crear en Windows Forms.

40. Cómo se llama la colección de elementos que tienen ambas barras en Windows Forms?

41. Qué tipo de ToolStripItem tiene la Barra de Herramientas que no tiene la Barra de Estado?

42. Cuál es el control mas usado para presentar una lista de datos en Windows Forms?

43. Menciona 3 propiedades Allow del control DataGridView de Windows.

44. Qué pasos debe realizar para crear un DataGridView con columnas personalizadas?

45. Menciona los 5 tipos de columnas personalizadas que puede tener el DataGridView.

46. Cómo se llama la propiedad de la columna personalizada que especifica que dato (campo o propiedad) vamos a presentar?

47. Qué pasos debe realizar para crear un DataGridView con una columna que muestre una imagen?

48. En qué evento del DataGridView hay que programar para formatear las columnas del control?

49. Cómo se configura el tamaño de la imagen mostrada en la columna del DataGridView?

50. En qué evento del DataGridView hay que programar para personalizar las cabeceras del control?

51. Cómo se crea un gráfico personalizado dentro de una columna del control GridView?

52. Para qué se usa el modo Virtual del DataGridView?

53. Qué propiedades del DataGridView hay que configurar para crear una paginación de datos?

54. En qué evento del DataGridView hay que programar para mostrar los valores de las celdas en una paginación?

55. Qué método del DataGridView hay que invocar para actualizar los valores de las celdas mostradas en la paginación?

56. Cómo se clasifican los controles que se pueden crear en Windows?

57. Qué tipo de control crearía si desea aumentar las características de un control existente en Windows Forms?

58. Qué tipo de control crearía si desea usar varios controles de Windows?

59. De qué clase hereda el control personalizado o dibujado?

60. Mencione 3 formas de crear un reporte en Windows Forms.

61. Para qué se usa la clase PrintDocument y en qué espacio de nombres se encuentra?

62. En qué evento de la clase PrintDocument se tiene que escribir código para crear la pagina a imprimir?

63.  Menciona el control y los 3 diálogos que se pueden asociar a la clase PrintDocument para crear reportes.

64. Cuál es la diferencia entre el control PrintPreviewControl y el diálogo PrintPreview al crear la vista preliminar del reporte?

65. En qué consiste los Informes de Microsoft y cuáles son sus dos componentes principales?

66. Para qué sirve el control ReportViewer?

67. Cuáles son las barras de herramientas que se usan en el diseñador de informes de Microsoft.

68. Qué propiedades del control ReportViewer deben configurarse para mostrar un reporte de datos?

69. A qué formatos puede exportar el ReportViewer?

70. Cuál es la diferencia entre crear un gráfico en Excel o usar el control Chart?

71. Qué propiedades son las más importantes de la clase Chart?

72. En qué espacio de nombres se ubica la clase Chart?

El Libro del Día: Pro HTML5 with Visual Studio 2012

El Libro del Día: 2014-06-17

Titulo: Pro HTML5 with Visual Studio 2012
Autor: Mark J Collins
Editorial: Apress
Nro Paginas: 409

Capítulos:
Part 1: What is HTML5?
Chapter 1: Before You Begin
Part 2: Using the New HTML5 Features
Chapter 2: ASP.NET Web Forms
Chapter 3: MVC Web Applications
Chapter 4: Cascading Style Sheets
Chapter 5: Scripting Enhancements
Chapter 6: Mobile Web Applications
Part 3: Developing with HTML5
Chapter 7: Supporting Older Browsers
Chapter 8: Audio and Video
Chapter 9: Scalable Vector Graphics
Chapter 10: Canvas
Part 4: Digging Deeper
Chapter 11: Indexed DB
Chapter 12: Geolocation and Mapping
Chapter 13: WebSockets
Chapter 14: Drag and Drop
Appendix A: Chapter 4 - Sample Content
Appendix B: Chapter 4 – Completed Style
Appendix C: Chapter 14 – Final Code

Descarga:
ProHTML5_VisualStudio2012