21 de Septiembre de 2017

programación

Feb
28

.NET Tutorial 42. XNA simulando luces en un entorno 2D

Categorías: 

El efecto que hoy vamos a ver es bastante curioso y puede dar mucho juego a nuestros juegos, valga la redundacia :)

El resultado del efecto es el siguiente:

Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

Como podéis observar en el vídeo (y al ejecutar el tutorial) se simulan varias fuentes de luz. El efecto queda bastante resultón y puede dar el "pego"en según que situaciones.

Aquí el "asunto" lo maneja el pixel shader, en concreto este:

Feb
25

VB.NET ~ [POO] 2 - Propiedades

Categorías: , , ,

Muy buenas a todos, compañeros de armas. Hoy vamos a ver como se crean las propiedades de una clase, para que se comporten como nosotros queramos.


 

Las propiedades son variables, que tienen asociados unos procedimientos especiales. Para empezar, debemos declarar esas variables: vamos a utilizar las mismas que en el tutorial anterior.

 

Public propiedad_nombre as string
Public propiedad_valor as integer

Sin embargo, debido a que nosotros queremos que estas variables sean propiedades, nosotros no debemos dejar que la variable se vea desde fuera, sino que se vea como propiedad unicamente. Por ello, hemos de declararlas con Dim (o Private, ya que Dim presupone Private):

Private propiedad_nombre as string
Private propiedad_valor as integer

Y ahora, toca crear los procedimientos de la propiedad. La declaración tiene la siguiente estructura:

Feb
23

VB.NET ~ [POO] 1 - Clases y métodos

Categorías: , ,
Muy buenas a todos, compañeros de armas. Hoy vamos a ver un poco de teoría de la programción orientada a objetos (POO), ya que este es el estilo de VB.NET.

 


 

La programación orientada a objetos (POO a partir de ahora) entre la que se incluye nuestro lenguaje en cuestión, VB.NET, se basa en que los problemas (y programas) se plantean como objetos reales de nuestro día a día. Por ejemplo, si vamos a crear un programa para gestionar una entidad bancaria, nosotros crearemos un objeto que sera el banco, que incluirá en su interior otros objetos, como serán los clientes, y estos a su vez contendrán otros objetos, que serán las cuentas bancarias. Todo esto, acompañado de unas propiedades, como sería un nombre para el objeto "banco", para indicar el nombre de la entidad, también un nombre para los objetos "clientes", para determinarlos y diferenciarlos, y una ID para diferenciar los objetos "cuentas". Por último, cada objeto tendrá unos métodos o funciones, que nos permitirán interactuar con él.

En determinadas ocasiones nos puede interesar ocultar la barra de tareas de Windows. Esto suele ocurrir básicamente en aplicaciones "a pantalla completa" o también conocidas como aplicaciones "kiosko".

Este tipo de aplicaciones están pensadas para que el usuario interaccione con "la pantalla". Lógicamente no podemos dejar visible la barra de tareas, ya que desde ahí pueden acceder al menú de inicio, configuración del sistema, etc.

En Windows XP se podía ocultar automáticamente la barra de tareas. En Vista y 7 también se puede:

El problema está en que en Windows Vista / 7, aunque hayamos establecido la propiedad TopMost del formulario a true ocurre que la barra de tareas se visualiza cuando desde nuestra aplicación ejecutamos otro proceso.

Supongamos la siguiente aplicación a pantalla completa:


(Haz click para agrandar)

Feb
15

VB.NET ~ Console 2 - Funciones y Propiedades

Muy buenas a todos, hoy vamos a ver algunas funciones y propiedades básicas que se utilizan con VB al tener una aplicación en modo consola. Además, también veremos que todo lo que se usa en VB (gráfico) como bucles, etc sigue siendo válido aquí, pues que es el mismo lenguaje. Evidentemente, lo que no podremos utilizar aquí será aquello relacionado a los controles utilizados en las aplicaciones con interfaz gráfica. ¡Vamos al lío!


  
Vamos a guardar nuestro archivo con el formato "Tutorial2.vb". Las funciones que veremos están contenidas en la clase System.Console.
  
Antes de nada, vamos a enumerar las funciones que vamos a utilizar aquí, que son muy simples. Esto se explicará, y se podrá ver en el archivo ejemplo del tutorial:

Aritméticas: +,/,<, +=, &, &=
Instrucciones de control: If,For
Otras: Console.Clear, Console.Beep, Console.Writeline, Console.Write, vbCrlf

Feb
13

VB.NET ~ Console 1 - Módulos y compilar con vbc

Categorías: ,
Buenas a todos. Hoy vamos a ver un poco de VB en entorno de consola. Además, veremos como compilar sin utilizar el EDI (Entorno de desarrollo integrado) de Microsoft Visual Studio, por lo que vamos a programar en un bloc de notas, y a guardar nuestro archivo con el formato "Tutorial1.vb".

Para empezar, a la hora de crear un programa en VB en un entorno no gráfico, se utilizan los módulos. Todo programa debe estar contenido en un módulo. No importa el nombre que le demos, pero debería ser algo representativo para nosotros.
Module NombreDelModulo
End Module
Una vez sabemos esto, ya podemos crear el cuerpo del programa. Sin embargo, el programa debe ser una clase que se llame "Main". Por tanto, ese debe ser el siguiente paso en nuestro programa, declarar la clase main.
Sub Main()
End Sub
Podemos comentar que no hace falta poner mayúsculas, ya que el compilador no diferencia mayúsculas de minúsculas. Esto es, para el compilador, es lo mismo escribir "Main", que "main", que "MAIN", etc.
Feb
12

Crear y leer códigos QR desde VB.NET

Categorías: ,

Supongo que muchos de vosotros habréis visto en más de una ocasión los códigos QR (Quick Response Barcode).

Estos códigos de barras actualmente están haciendo "furor" debido a la proliferación de los dispositivos móviles de tipo iPhone y Android.
De hecho, en la Android Market se pueden instalar directamente las aplicaciones en el móvil enfocando éste hacia la pantalla del ordenador y "leer" el código que aparece en la página:

Gracias al auge de los dispositivos móviles de nueva generación, las cabecezas pensantes de los departamentos de marketing de las empresas no han tardado en ver un filón a todo esto. Se pueden encontrar QR Codes incluso en las marquesinas de las paradas del bus:

...como reclamo publicitario en congresos:

...incluso en latas de refrescos:

 

Feb
11

.NET Tutorial 40. Usando el puerto serie (Parte II)

Categorías: ,

En el Tutorial 31 vimos como simular un dispositivo que enviaba "cosas" por el puerto serie. En aquel tutorial usamos el hyperterminal para verificar que era lo que se estaba enviando.

Hoy veremos la "parte interesante", es decir, realizaremos un programa para poder procesar una comunicación con un dispositivo serie.

Tal y como vimos en el tutorial anterior tendremos dos posibilidades para realizar las pruebas.

Configuración 1)

Esto quiere decir que o bien usamos un cable Null-Modem o bien programas para virtualizar puertos (ver tutorial anterior)

En el caso de arriba, el Tutorial 31 utiliza el COM1 y el Tutorial 40 utiliza el COM2.

Configuración 2)

En este caso tendremos que usar forzosamente un cable Null-Modem.

El tutorial 31 utiliza el COM1 del PC1, mientras que el Tutorial 40 utiliza el COM1 del PC2.

La longitud máxima para este tipo de conexiones es de 15 metros.

El Reconocimiento Óptico de Caracteres (OCR), así como el reconocimiento de texto, en general son aplicaciones dirigidas a la digitalización de textos. Identifican automáticamente símbolos o caracteres que pertenecen a un determinado alfabeto, a partir de una imagen para almacenarla en forma de datos con los que podremos interactuar mediante un programa de edición de texto o similar. (wikipedia)

Por si la definición anterior no es demasiado clara, lo explicaré con un ejemplo:
Supongamos que nos piden escribir 20 páginas sobre el tratado de Mastrich (ZzzZZZzzz :)
Nosotros que somos la mar de vagos, escaneamos esas 15 páginas de la enciclopedía Espasa Calpe con lo que tendremos 15 archivos *.jpg (0001.jpg, 0002.jpg, 0003.jpg)

El "problema" es que los archivos "jpg" no se pueden editar en el "Word", cambiarles la fuente, hacer doble espaciado, etc, porque no dejan de ser fotos.

Pues los OCRs lo que hacen es "convertir" esas "fotos" en texto que es editable.

Otro tipo de OCRs más sofisticados son los que son capaces de "leer" las matrículas de los coches, códigos de barras, o los captchas de Megaupload ( L o L ??? do_ob )

Feb
6

.NET Tutorial 38. Cliente Telnet sin librerías externas

Categorías: 

Por motivos que no vienen al caso he necesitado realizar una comunicación Telnet, en mi caso particular para comunicarme con un router.
Buscando documentación por internet encontré diversos componentes "ActiveX" y DLLs que servían para realizar este tipo de comunicaciones.
En la medida de lo posible, os recomiendo "huir" de este tipo de librerías e intentar utilizar o bien "librerías" en código nativo de .NET o directamente intentar utilizar las propias clases que nos ofrece el .NET Framework.

Buscando un poco más encotre una clase realizada por un tal Tom Janssens, que utiliza el Namespace System.Net.Sockets.

La clase se llama TelnetConnection y apenas tiene un centenar de líneas.

En base a dicha clase me he montado una pequeña aplicación para poder enviar "comandos" al router. Podéis modificar la aplicación para realizar vuestros propios cometidos y/o investigar como realizar una comunicación Telnet.
Hay abundante información sobre el protocolo Telnet aquí: http://es.wikipedia.org/wiki/Telnet

Os muestro un poco por encima la aplicación. El código lo encontraréis como de constumbre al final de esta entrada.