Exemple #1
0
        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();
                }
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }