jueves, 4 de octubre de 2012

Creando un Paint en C++ Parte 3

Ha llegado el momento de darle color a nuestro editor, por ello vamos a ver los pasos que se tiene que seguir para añadir las nuevas funciones.



  • PASO 1: Sustituir panel de botones.



Aquí se tiene el nuevo panel de botones, con lo necesario para poder escojer el color deseado. Un color se descompone en los tres colores primarios que son el rojo, el verde y el azul (RGB). Mediante la selección de estos tres colores se compondrá el color deseado. Los posibles valores que pueden tomar van del 0 al 255. 

  • PASO 2: Añadir codigo de botones en cambiaccion().
Se añade el siguiente código, que se encarga de controlar si pulsamos sobre los nuevos botones que están a los lados de los colores para aumentar o reducir el valor de las variables: colorR, colorG, y colorB. Controlando en todo momento que no salgan de los limites, su valor debe estar entre 0 y 255.
     if (mouse_x > 65 && mouse_x < 88 &&
         mouse_y > 1 && mouse_y < 20 ){
          rect( buffer, 65,1,88,20, 0x666666 );       
           if ( colorR > 0 ) colorR--;       
     }
     if (mouse_x > 65 && mouse_x < 88 &&
         mouse_y > 22 && mouse_y < 41 ){
          rect( buffer, 65,22,88,41, 0x666666 );       
           if ( colorG > 0 ) colorG--;       
     }
     if (mouse_x > 65 && mouse_x < 88 &&
         mouse_y > 43 && mouse_y < 63 ){
          rect( buffer, 65,43,88,63, 0x666666 );       
           if ( colorB > 0 ) colorB--;       
     }         
     
     if (mouse_x > 168 && mouse_x < 191 &&
         mouse_y > 1 && mouse_y < 20 ){
          rect( buffer, 168,1,190,20, 0x666666 );       
           if ( colorR < 255 ) colorR++;       
     }
     if (mouse_x > 168 && mouse_x < 191 &&
         mouse_y > 22 && mouse_y < 41 ){
          rect( buffer, 168,22,190,41, 0x666666 );       
           if ( colorG < 255 ) colorG++;       
     }
     if (mouse_x > 168 && mouse_x < 191 &&
         mouse_y > 43 && mouse_y < 63 ){
          rect( buffer, 168,43,190,63, 0x666666 );       
           if ( colorB < 255 ) colorB++;       
     }

Aparte de todo esto es necesario crear otro botón, que se encargue de seleccionar el color creado.

     // boton para asignar el color
     if ( mouse_x > 192 && mouse_x < 255 &&
          mouse_y > 1   && mouse_y < 63 ){
           colora = makecol(colorR,colorG,colorB);       
     }

En la variable colora se almacena el color activo, que tenemos para pintar. Despues de esto debemos declarar arriba del todo de forma global las nuevas variables que estamos utilizando.

int colora  = 0x000000;
int colorR = 255;
int colorG = 255;
int colorB = 255;

  • PASO 3: Modificar función Sobre_boton().
Como el panel de botones ha cambiado, y ahora existen mas botones. Es necesario cambiar la función para que puedas utilizar los nuevos botones.

bool Sobre_boton(){
     return ( mouse_x >0 && mouse_x < 256 &&
              mouse_y >0 && mouse_y < 64 );
};


  • PASO 4: Mostrar los botones correctamente.

Debido a que se cambia el panel de botones, en la función Pinta_botones() debemos de sustituir la imagen anterior por la nueva o cambiar en el programa el nombre de la nueva imagen de botones. Al igual a la hora de pintar la nueva imagen como tiene diferentes dimensiones con respecto a la anterior, debemos modificar la linea que se encarga de pintar el panel de botones.

     rectfill(buffer, 192,1,255,63, makecol(colorR,colorG,colorB)); 
     masked_blit( botones, buffer, 0,0, 0,0,256, 64);

La primera linea se encarga de mostrar el color que se genera de seleccionar los valores colorR, colorG y colorB.

  •  PASO 5: Opcion de color
Ahora debemos cambiar el color con el que se pinta, que anteriormente se tenia puesto el color negro, se debe sustituir por la variable colora, que contiene el color activo, con el que se desea pintar.

           putpixel( dibujo, mouse_x, mouse_y, colora );

Esta linea se encuentra dentro de la funcion  realizaccion(), dentro de la opcion "case 4:".

Y con todo esto ya tenemos opción a pintar a todo color, para la próxima entrega añadiremos dos botones mas. Uno para guardar la imagen creada y otro para obtener un color del dibujo.

Recuerda que este tutorial es la continuación del curso Creando un paint :

2 comentarios:

  1. hola tengo una pregunta el paso 4 esas dos lineas de código en que parte van ?

    ResponderEliminar
    Respuestas
    1. Esas lineas va dentro de la funcion de pintar los botones. Pinta_botones(). Deben de sustituir lo anterior ya que ahora la imagen de los botones es mas grande.

      Eliminar

Related Posts Plugin for WordPress, Blogger...