public static void DibujarFondo() { Sprite pasto = new Sprite("Assets/GFX/pasto.jpg"); for(int i = 0; i < 20; i++) { for(int j = 0; j < 20; j++) { pasto.Mover(i * pasto.Ancho, j * pasto.Alto); pasto.Dibujar(); } } }
public static void Inicializar(short ancho, short alto, int colores,bool pantalla_completa) { BarraHerramientas = 200; int bpp; int flags = Sdl.SDL_HWSURFACE | Sdl.SDL_DOUBLEBUF | Sdl.SDL_ANYFORMAT; Console.WriteLine("Inicializando SDL"); Hardware.Ancho = ancho; Hardware.Alto = alto; if(pantalla_completa) { flags |= Sdl.SDL_FULLSCREEN; } #region video if(Sdl.SDL_Init(Sdl.SDL_INIT_VIDEO) < 0) { Console.WriteLine("No se pudo inicar el sistema de video"); Console.WriteLine("ERROR: {0}", Sdl.SDL_GetError()); Environment.Exit(1); } bpp = Sdl.SDL_VideoModeOK(ancho, alto, colores, flags); if(bpp == 0) { Console.WriteLine("No se pudo establecer el modo de video"); Console.WriteLine("ERROR: {0}", Sdl.SDL_GetError()); Environment.Exit(1); } pantalla = Sdl.SDL_SetVideoMode(ancho, alto, bpp, flags); #endregion #region Fuentes if(SdlTtf.TTF_Init() < 0) { Console.WriteLine("No se pudo inicar el manejador de fuentes"); Console.WriteLine("ERROR: {0}", Sdl.SDL_GetError()); Environment.Exit(1); } #endregion origen = new Sdl.SDL_Rect(0 , 0, ancho, alto); //Sdl.SDL_SetClipRect(pantalla, ref origen); #region Sonido if(Sdl.SDL_InitSubSystem(Sdl.SDL_INIT_AUDIO) < 0) { Console.WriteLine("No se pudo inicar el sistema de audio"); Console.WriteLine("ERROR: {0}", Sdl.SDL_GetError()); SonidoActivo = false; } else { SonidoActivo = true; } if(SonidoActivo) { if(SdlMixer.Mix_OpenAudio(22050, Sdl.AUDIO_S16, 2, 4096) < 0) { Console.WriteLine("No se pudo inicar el mezclador de audio"); Console.WriteLine("ERROR: {0}", Sdl.SDL_GetError()); SonidoActivo = false; } } AlmacenSonidos.Inicializar(); #endregion Console.WriteLine("SDL inicializado con exito"); Sprite boton = new Sprite("Assets/Botones/boton.png"); fuente = new Fuente("Assets/Fuentes/FreeSansBold.ttf", 14); CambiarColorTexto(0,0,0); boton.Mover(650, 100); boton.Dibujar(); EscribirTexto("Arriba", 685, 115); boton.Mover(650, 154); boton.Dibujar(); EscribirTexto("Abajo", 685, 169); boton.Mover(650, 207); boton.Dibujar(); EscribirTexto("Izquierda", 685, 222); boton.Mover(650, 270); boton.Dibujar(); EscribirTexto("Derecha", 685, 285); boton.Mover(650, 324); boton.Dibujar(); EscribirTexto("Buscar", 685, 339); fuente = new Fuente("Assets/Fuentes/FreeSansBold.ttf", 20); }
private void PosicionarCasa() { Sdl.SDL_Event evento; Sdl.SDL_Rect rectangulo; Sprite casa = new Sprite("Assets/GFX/casini.png"); bool puesta = false; do { while(Sdl.SDL_PollEvent(out evento) > 0) { switch(evento.type) { case Sdl.SDL_MOUSEMOTION: if (evento.motion.x > 0 && evento.motion.y > 0 && evento.motion.x < Hardware.Ancho && evento.motion.y < Hardware.Alto) { rectangulo.x = /*(short)(evento.motion.x - 16);*/(short)(((int)(20 - (((Hardware.Ancho - evento.motion.x) / (float)Hardware.Ancho)) * 20)) * 32); rectangulo.y = /*(short)(evento.motion.y - 16);*/(short)(((int)(20 - (((Hardware.Alto- evento.motion.y) / (float)Hardware.Alto)) * 20)) * 32); try { if(sprites[rectangulo.x/32,rectangulo.y/32] == null) { casa.Mover(rectangulo); } } catch (IndexOutOfRangeException) {} } break; case Sdl.SDL_MOUSEBUTTONDOWN: try { if(sprites[rectangulo.x/32,rectangulo.y/32] == null) { sprites[rectangulo.x/32,rectangulo.y/32] = casa; this.casa = casa; puesta = true; } } catch (IndexOutOfRangeException) {} break; } } Hardware.DibujarFondo(); DibujarObstaculos(); casa.Dibujar(); Hardware.RefrescarPantalla(); }while(!puesta); }