Buscar en la comunidad
Mostrando resultados para las etiquetas 'tutorialprogramacion'.
Encontrado 1 resultado
-
Bueno, esto es una traduccion de Alucard^ de este tutorial (en ingles): http://forums.alliedmods.net/showthread.php?t=91207 hecho por joaquim... da un breve comienzo a la programacion (pawn) antes de entrar en lo que es la programacion en AMXX. En la programacion, todo esta representado por numeros. Una letra es un numero, una palabra es un grupo de numeros, un color es un grupo de 3 numeros (RGB = Red, Green, Blue = Rojo, Verde, Azul). Entonces para programar hay que tratar con numeros. PARTE 1 - Variables, Numeros y Numeros de Arrays Para poder guardar un numero, tenemos que buscar el lugar donde guardarlo... y ese lugar es denominado variable. Hacemos lo siguiente: new NombreVariable * new significa que estamos creando una nueva variable. * NombreVariable es el nombre que le asignamos a la variable que creamos. * Le podemos poner cualquier nombre, pero siempre es conveniente usar el nombre mas apropiado, dependiendo del uso de esta y de lo que queramos guardar adentro. Esto es llamado declaracion de una variable. Ahora, para guardar un numero dentro de esta variable hacemos lo siguiente: NombreVariable = 5 * El 5 es solo un ejemplo. * Le podemos asignar el numero a la variable apenas la creamos o luego de crearla, aca un ejemplo asignandole el numero en el momento que creamos la variable: PHP Code: new NombreVariable = 5 Ahora, para tener un grupo de numeros, necesitamos hacer uso de los arrays... de la siguiente forma: new GrupoVariable[x] * En x iria el numero que quieran, o que necesiten usar. Obviamente x no va, es solo un ejemplo. * Ese numero representa el numero de grupos que va a contener esa variable. * Y cada grupo puede contener un numero... Para acceder a cada grupo debemos hacer lo siguiente: new Color[3] // creamos una variable con un array de 3 grupos // Ahora para asignarle un numero a cada grupo: Color[0] = 255 Color[1] = 0 Color[2] = 0 // Como se habran dado cuenta, se empieza desde 0... por lo que el ultimo numero desaparece. // O sino tambien podriamos hacer asi: new Color[3] Color = { 255, 0, 0 } // Y por ultimo tambien asi: new Color[3] = { 255, 0, 0 } Pawn nos provee de operadores aritmeticos, entonces podemos hacer algo asi: new Color[3] Color[0] = Color[0] - 10 Color[1] = Color[1] - 10 Color[2] = Color[2] - 10 // Entonces antes de crear nuestro color podemos hacerlo mas oscuro, restandole una cantidad de 10 en cada monto de color // Ahora si queremos hacer lo mismo con varios colores, terminaria siendo re largo... por eso podemos crear algo llamado "funcion" de esta forma: OscurecerColores(Color[3]) { Color[0] = Color[0] - 10 Color[1] = Color[1] - 10 Color[2] = Color[2] - 10 } // Color[3] es solo un nombre que no necesariamente se tiene que usar, ahi van a ir los distintos colores que uno va a usar. // Entonces al crear esa funcion, despues la podemos a usar de forma simple para oscurecer distintos colores, de la siguiente forma: // Primero creamos las variables de los colores con sus arrays y sus valores de color. new UnColor[3] = { 100, 100, 100} new OtroColor[3] = { 50, 100, 150} new OtroColorMas[3] = { 255, 30, 233} // Y despues para oscurecerlos con la funcion que habiamos creado es simplemente asi: OscurecerColores(UnColor) OscurecerColores(OtroColor) OscurecerColores(OtroColorMas) // Esto automaticamente le resta 10 a cada valor de color. // Entonces los colores quedarian asi: /* UnColor = 90 90 90 OtroColor = 40 90 140 OtroColorMas = 245 20 223 */ Con este code anteriormente mostrado, tenemos un problema con la funcion creada. El problema es que si uno de nuestros colores tenie un numero como por ejemplo 0, al usar la funcion OscurecerColor, el color valor de tal color va a quedar en negativo (-10) y los valores de color deben ir entre 0 y 255. Asi que para eso debemos ponerle determinadas condiciones dentro de la funcion para que no suceda esto... y se hace de la siguiente forma: OscurecerColores(Color[3]) { Color[0] = Color[0] - 10 Color[1] = Color[1] - 10 Color[2] = Color[2] - 10 if(Color[0] < 0) { Color[0] = 0 } if(Color[1] < 0) { Color[1] = 0 } if(Color[2] < 0) { Color[2] = 0 } // Agarremos una condicion de ejemplo: /* if(Color[0] < 0) { Color[0] = 0 } */ // Lo primero es la condicion, quiere decir que si el primer valor es menor de 0 se cumple lo de abajo. // Y lo de abajo setea ese valor a 0. Entonces si el valor es menor a 0 (negativo) esta condicion hace que se quede en 0 y no se reste mas. } Ahora, para hacer que la funcion sea mas practica, les voy a dar el siguiente ejemplo: OscurecerColores(Color[3], parametro) { Color[0] = Color[0] - parametro Color[1] = Color[1] - parametro Color[2] = Color[2] - parametro } // Con esto hacemos que sea mas dinamico y que no necesariamente le reste 10, sino que le reste lo que queramos cuando usemos la funcion para oscurecer tal color... // Un ejemplo claro seria: new UnColor[3] = { 100, 100, 100} OscurecerColores(UnColor, 30) // Entonces el color nos quedaria: 70 70 70 // Tambien podriamos hacer algo asi: OscurecerColores(Color[3], parametro1, parametro2, parametro3) { Color[0] = Color[0] - parametro1 Color[1] = Color[1] - parametro2 Color[2] = Color[2] - parametro3 } new UnColor[3] = { 100, 100, 100} OscurecerColores(UnColor, 30, 50, 10) // Y nos quedaria asi: 70 50 90 // Esto es para que entiendan la forma en la que se puede agregar los distintos parametros en una funcion que creemos... Ah todo esto, obviamente podemos crear la misma funcion pero en vez de que sea para oscurecer, podemos hacer que "ilumine" o sea, que el color sea mas clarito. Y simplemente tenemos que cambiar el signo menos por el mas, de la siguiente forma: OscurecerColores(Color[3], parametro1, parametro2, parametro3) { Color[0] = Color[0] + parametro1 Color[1] = Color[1] + parametro2 Color[2] = Color[2] + parametro3 } Obviamente al hacer esto tmb vamos a tener el problema de que no tiene que superar los 255 del valor de cada color... por lo que tenemos que aplicar las mismas condiciones que hicimos antes pero en vez de usar el signo < debemos usar el > y para dar un pequeño ejemplo: if(Color[0] > 255) // Si el valor del color supera los 255 { Color[0] = 255 // Se setea lo maximo (255) }
- 3 respuestas

