Anda di halaman 1dari 6

Si queremos que nuestro juego funcione a pantalla completa, los cambios son minimos: basta anadir SDL_FULLSCREEN a la lista

de parametros que indicamos al escoger el modo de pantalla. Estos parametros se deben indicar separados por una barra vertical (|), porque entre ellos se va a realizar una operacion OR (suma logica) a nivel de bit:
screen = SDL_SetVideoMode( 640, 480, 16, SDL_FULLSCREEN | SDL_HWSURFACE );

Ejercicios propuestos: Amplia el ejercicio anterior, para que la imagen de la nave espacial tenga el contorno transparente (y quiza tambien alguna zona interior). Crea una imagen que contenga varias letras (al menos H, O, L, A), y usala para escribir las frases HOLA y OH en modo grafico con SDL.

10.5.4. El doble buffer

Si intentamos mover varias imagenes a la vez en pantalla, es probable que el resultado parpadee. El motivo es que mandamos informacion a la pantalla en distintos instantes, por lo que es facil que alguno de todos esos bloques de informacion llegue en un momento que no coincida con el barrido de la pantalla (el movimiento del haz de electrones que redibuja la informacion que vemos). Una solucion habitual es preparar toda la informacion, trozo a trozo, en una imagen oculta, y Asi, con nuestro protagonista hariamos

/* Preparamos las imagenes a mostrar */ fondo = SDL_LoadBMP("fondo.bmp"); protagonista = SDL_LoadBMP("protag.bmp"); /* El protagonista debe tener contorno transparente */ SDL_SetColorKey(protagonista, SDL_SRCCOLORKEY, SDL_MapRGB(protagonista->format, 0, 0, 0));

Si usamos la biblioteca adicional SDL_Image, podremos usar imagenes PNG con transparencia, y entonces no necesitariamos usar esta orden. Escribir texto con SDL no es algo trivial: A no ser que empleemos la biblioteca adicional SDL_TTF, no tendremos funciones predefinidas que muestren una frase en ciertas coordenadas Para poder mover a ese protagonista por encima del fondo de forma no planificada necesitamos poder comprobar que teclas se estan pulsando. Lo podemos conseguir haciendo:
teclas = SDL_GetKeyState(NULL); if (teclas[SDLK_UP]) { posicionY -= 2; }

Donde la variable "teclas", sera un array de "unsigned int". La forma normal de declararla sera:
Uint8* teclas;

Eso si, antes de poner acceder al estado de cada tecla, deberemos poner en marcha todo el

sistema de comprobacion de sucesos ("events", en ingles). Al menos

Aprender a programar es un objetivo que se plantea mucha gente y que no todos alcanzan. Hay que tener claro que aprender programacin no es tarea de un da ni de una semana: aprender programacin requiere al menos varios meses y, si hablamos de programacin a nivel profesional, varios aos. No queremos con esto desanimar a nadie: en un plazo de unos pocos das podemos estar haciendo nuestros primeros programas y ver los primeros resultados, pero aprender a programar es mucho ms que eso. Vamos a tratar de exponer nuestra visin sobre una forma adecuada de enfrentarnos al aprendizaje de la programacin. En primer lugar diremos que aprender a programar es una expresin bastante indefinida. Existen cientos de lenguajes de programacin y de variantes, versiones, modificaciones, etc. as como distintos enfoques en cuanto a los objetivos (programacin web, aplicaciones de gestin, aplicaciones de bases de datos, etc.). Por tanto aprender a programar es bastante ambigo: es como decir quiero aprender a pintar. Nos permitira centrarnos mejor definir un objetivo ms especfico: Quiero aprender a dibujar comics estilo manga. El problema para los no iniciados es muchas veces que la programacin es un campo muy cambiante, donde hay una continua proliferacin de versiones y pugnas entre casas comerciales que hacen que los lenguajes cambien muy rpidamente y nadie sepa muy bien qu es lo ms conveniente aprender.

tiempo es limitado, un curso semi-presencial u on-line puede ser lo ms conveniente. Si ests interesado en esta va, te recomendamos visitar la seccin Cursos de aprenderaprogramar.com. c) Realizar estudios oficiales en el rea de informtica programacin: es quizs la mejor va para aquellas personas que quieren dedicarse profesionalmente a la informtica. Esto requiere normalmente una dedicacin de varios aos a tiempo completo, por lo que es una opcin que descartan muchas personas que quieren aproximarse de una forma ms libre a la programacin o que ya tienen otros trabajos. Si ests interesado en esta opcin te recomendamos que visites la seccin Estudios oficiales de aprenderaprogramar.com.

d) Empezar a programar directamente con un lenguaje o entorno (Java, Visual Basic, C, .NET, J2EE, SQL, etc.) recurriendo a libros, cursos, pginas web especializadas, ayuda de los lenguajes, etc.: consideramos que es una mala opcin. Antes de empezar a programar en un lenguaje debemos tener fundamentos de programacin que nos servirn para todos los lenguajes, al igual que para construir una casa debemos tener antes cimientos que nos permitan continuar la construccin de forma slida. Empezar a programar directamente en un lenguaje sin tener fundamentos de programacin consideramos que llevar a que se requiera ms tiempo y no se obtengan tan buenos resultados como si se empezara con fundamentos de programacin. e) Aprender a programar apoyndonos en un sitio web de confianza: algunos sitios web tienen buenos contenidos gratuitos o de pago para aprender a programar. Este es el caso de

Para medir suele ser necesario fraccionar la unidad. De aqu surge la idea de nmero

fraccionario: mitad, quinta parte, milsima parte... Una fraccin se puede interpretar de diferentes maneras: A) Una fraccin es una parte de la unidad.

Unidad 1: Tipos de nmeros. Nmeros naturales


Curso

asdasdasdasdasdasdasqweqewqeqeq zxczcqwqweqwertyrtyrtrtywewerwerweqerwerwewerbnm,,.klkliopiopiopiopuioy-.,-.,-.,-.,zxc-.,z{lklklkasdipoipoidskjasdkjasdlka sdlkasdlkasjaslkasdlkasdlkflkflklklklkwelkqwelkrlklkqwelkw elktki

Las variables se pueden declarar dentro de un bloque (una funcion), y entonces solo

ese bloque las conocera, no se podran usar desde ningun otro bloque del programa. Es lo que llamaremos variables locales. Por el contrario, si declaramos una variable al comienzo del programa, fuera de todos los bloques de programa, sera una variable global, a la que se podra acceder desde cualquier parte. Vamos a verlo con un ejemplo. Crearemos una funcion que calcule la potencia de un numero entero (un numero elevado a otro), y el cuerpo del programa que la use. La forma de conseguir elevar un numero a otro sera a base de multiplicaciones, es decir:
3 elevado a 5 = 3 3 3 3 3

(multiplicamos 5 veces el 3 por si mismo). En general, como nos pueden pedir cosas como "6 elevado a 100" (o en general numeros que pueden ser grandes), usaremos la orden "for" para multiplicar tantas veces como haga falta:
/*---------------------------*/ /* Ejemplo en C n 63: */ /* c063.c */ /* */ /* Ejemplo de funcin con */ /* variables locales */ /* */ /* Curso de C, */ /* Nacho Cabanes */ /*---------------------------*/ #include <stdio.h> int potencia(int base, int exponente) { int temporal = 1; /* Valor que voy hallando */ int i; /* Para bucles */ for(i=1; i<=exponente; i++) /* Multiplico "n" veces */ temporal *= base; /* Y calculo el valor temporal */ return temporal; /* Tras las multiplicaciones, */ } /* obtengo el valor que buscaba */ main() { int num1, num2; printf("Introduzca la base: "); scanf("%d", &num1); printf("Introduzca el exponente: "); scanf("%d", &num2); printf("%d elevado a %d vale %d", num1, num2, potencia(num1,num2)); }

En este caso, las variables temporal e i son locales a la funcion potencia: para main no existen. Si en main intentaramos hacer i=5; obtendriamos un mensaje de error. De igual

En general, deberemos intentar que la mayor cantidad de variables posible sean locales (lo ideal seria que todas lo fueran). Asi hacemos que cada parte del programa trabaje con sus propios datos, y ayudamos a evitar que un error en un trozo de programa pueda

afectar al resto. La forma correcta de pasar datos entre distintos trozos de programa es usando los parametros de cada funcion, como en el anterior ejemplo. Ejercicios propuestos: Crear una funcion pedirEntero, que reciba como parametros el texto que se debe mostrar en pantalla, el valor minimo aceptable y el valor maximo aceptable. Debera pedir al usuario que introduzca el valor tantas veces como sea necesario, volverselo a pedir en caso de error, y devolver un valor correcto. Probarlo con un programa que pida al usuario un ano entre 1800 y 2100. Crear una funcion escribirTablaMultiplicar, que reciba como parametro un numero entero, y escriba la tabla de multiplicar de ese numero (por ejemplo, para el 3 debera llegar desde 3x0=0 hasta 3x10=30). Crear una funcion esPrimo, que reciba un numero y devuelva el valor 1 si es un numero primo o 0 en caso contrario. Crear una funcion que reciba una cadena y una letra, y devuelva la cantidad de veces que dicha letra aparece en la cadena. Por ejemplo, si la cadena es "Barcelona" y la letra

Cual es la diferencia entre las varias Tecnologas de los UPS , tipos, Standby , Off-Line, Interactivos, Lnea Interactiva, On-Line y OnLine Doble Conversin ?
Standby Off-Line : Esencialmente es lo mismo, estos sistemas tienen el inversor siempre parado ( Off ) el cual se conecta y transfiere las cargas informticas se vuelve ( On ) cuando se produce una anomala en el fallo de la energa elctrica, un corte por ejemplo. Bsicamente estos equipos proveen una alimentacin no acondicionada directamente a las cargas informticas en estado normal ya que es la compaia quin suministra alimentacin a las cargas, aunque existen modelos con estabilizacin de tensin con lo que la tensin de salida puede variar con respecto a la entrada. Interactivos de Linea Interactiva : Hay de 2 tipos con Salida Cuasisenoidal y Senoidales que son equipos de ms calidad. Estos sistemas tienen el inversor generalmente en espera standby, pero la lgica bsicamente est funcionando al mismo tiempo que la Red elctrica, ya que el tiempo de conmutacin es prcticamente nulo en los modelos Senoidales. Estos sistemas protegen de picos y sobretensiones a las cargas que conectemos a ellos ya que todos disponen de Estabilizador y algunos suelen proteger de casi el 80 % de las anomalas elctricas, por su precio-calidad son equipos interesantes para algunas protecciones informticas On-Line y On-Line de Doble Conversin: Estos equipos tienen el inversor constantemente en ( On ) con lo que no hay ningn tiempo de transferencia al producirse una anomala en la Red elctrica, eso les hace proveer una alimentacin acondicionada y segura,

Tensin sucia es un termino utilizado para decir que la Red elctrica lleva cambios y perturbaciones como ruido elctrico, armonico, picos, transitorios etc. sobrepuestos en la senoide, con lo que estos nos estn llegando directamente a nuestros equipos informticos. Un estudio de IBM, indica que un procesador tiene alrededor de 128 problemas elctricos cada mes. Es importante anotar que las exposiciones de los equipos a microcortes de ms de 4 milisegundos son causas de averas del Hardware en el 90 % de los casos observados.

Podr el UPS que adquiera comunicarse con mi ordenador ?


S, ya que practicamente todos los UPS de T.R.Vdisponen de salida RS-232 para comunicarse mediante software con el ordenador, para la mayora de las Redes y sistemas operativos del mercado ( Novell , Linux, Unix , Windows 95, 98, 2000, XP y NT, Etc.).

Que es el SNMP ?
SNMP significa "Protocolo de Gestin Simple de la Red" y es un lenguaje estndar que hace posible que diferentes componentes de la red puedan ser dirigidos centralmente entre ellos uno varios UPS dentro de una misma red. Casi todos los SAI's de TRV disponen de salida RS-232 para conectarse y poder comunicarse con el ordenador y algunos disponen de opcin SNMP para incorporar una tarjeta de comunicaciones ( UPS Modelo Vanguard).

Hay situaciones en las que los nmeros naturales no son suficientes, por lo que necesitamos crear otros nuevos, que llamaremos nmeros enteros.
El conjunto de los nmeros enteros se designa con la letra Z

Los nmeros enteros positivos son los nmeros naturales. Cualquier nmero natural se puede considerar entero, pero al revs no. Por ejemplo: 7 es un nmero natural y entero -9 es un nmero entero, pero no es natural Actividades Complete la siguiente tabla:

Nmeros decimales

Los nmeros decimales sirven para expresar medidas, pues pueden designar valores intermedios entre los nmeros enteros. Por ejemplo: Para expresar la altura en metros de una persona (1,68m) Para expresar el precio del kilo de naranjas (1,83 euros/kg)

12

Curso de Acceso a Grado Medio

Z = {0, 1, 2, 3, 4, 5... 200... 400... 1234... 660.523...}


Natural