Engine Engan Game

Apuntes hechos para mí y si te ayudan para tí también, MAS NOTICIAS Y CURIOSIDADES


GD SCRIPT

  • un nodo solo puede tener un script, aunque se pueden comunicar entre nodos con distintos scripts.
  • func_ready(): se ejecuta una vez.
  • func_process(delta): se ejecuta una vez por frame.
  • operadores

and

pregunta    respuesta                salida

v           v                      v

v           f                 f   

f          v                     f

f         f                      f

or

pregunta      respuesta                salida

v           v                    v

v             f                       f

f             v                       f

f      f                       f

not

pregunta                        salida

f                          v

v                  f

  • Los comentarios se ponen con una almohadilla #.
  • Las variables son espacios de almacenamiento en memoria que pueden almacenar cualquier valor y puede cambiar en cualquier momento. Para escribir una variable usamos la palabra reservada var, un espacio y el nombre de la variable y después el valor.
  • las constantes son como las variables pero que no pueden cambiar. para escribir una constante usamos la palabra reservada const un espacio y el nombre de la constante y después el valor. de normal los nombres de las constantes son en mayúscula y de las variables en minúscula. las constantes se tienen que poner un valor al asignarlas y ese valor ya no se podrá cambiar, las variables por su contra no hacen falta ponerle el valor en el momento.
  • si no queremos poner en una función ningún dato en el momento y ponerlo después podemos usar la palabra reservada pass, así no dará error la función.
  • los enums sólo pueden almacenar números enteros. debemos ponerla palabra reservada enum seguido de unas llaves{} y dentro de las llaves separado con comas los nombre de los enums que queremos, si no ponemos valores a esos nombres cogerán los números empezando por el cero. Si queremos poner los datos, sería poner el nombre espacio igual y ya el número.
  • en programación el primer número nunca es el 1, es el 0 por lo que si tu quieres contar hasta el 4 no contará 1,2,3 y 4 si no que contara 0,1,2 y 3.
  • tipos de datos,
    • null- vacio
    • bool- verdadero o falso
    • int-entero, números positivos o negativos de -2 elevado a la 63 a 2 elevado a la 63 positivo.
    • float- número con decimales. 64 bits también.
    • string- letras. se pueden concatenar frases con el símbolo +.
  • vectores.
    • vector 2d- x, y.- x izquierda y derecha.- y arriba y abajo.
    • vector 3d- x, y, z. la z es la profundidad
    • vector 4d- x, y, z, w. la w es de colores. podríamos acceder a un valor en todos los casos poniendo el nombre del vector.x o .y o .z o .w
  • arrays es una estructura de datos. permite almacenar datos de diferentes tipos. matrices o tablas. var my_array : Array = [‘text’, 5,4,3]
    • Los arrays sirven por ejemplo para crear niveles.
    • Para leer datos de un array, cada dato de un array se llama elemento y muchos elementos forman un tamaño o rango. Cada elemento tiene un número llamado índice para identificarlo y acceder a su valor. El primer índice es siempre el 0. Si tienes 4 índices, para llegar al último, tendrías que empezar por el 0,1,2,3, por lo tanto el último número no será el 4 sino el 3.  ejemplo:  var my_array : Array = [‘text’, 5,4,3]

para acceder al número 3, deberías hacer lo siguiente: print (my_array[3] ).

  • para acceder al primer valor podemos usar el 0 o el front:  print (my_array.front() )
  • para acceder al último valor de un array podemos usar el -1 o back:  print (my_array.back() )
  • para agregar datos: para poner datos al final podemos usar dos maneras.
    • my_array.append(‘el valor que quieras poner’)
    • my_array.push_back(‘datos’).
  • también se puede crear un dato añadido de otro array.
    • var my_array : Array =[‘text’, 5, 4, 3 ]

    var my_array2 : Array =[‘text2’, 99 ]

my_array.append_array(my_array2)

print(my_array)

salida[«text», 5, 4, 3, «text2», 99 ]

  • para agregar al principio del array es con push.front. my_array.push_front(‘dato que poner’)
  • para agregar en cualquier posición usamos insert. ponemos el lugar que queremos poner el dato y el nombre del nuevo dato: my_array.insert(1, ‘dato nuevo’)
  • para eliminar datos: para eliminar todos los datos del array se hace con clear. my_array.clear()
  • con la palabra erase eliminaremos el que queramos con ese valor. osea eliminarás el valor con el mismo nombre que pongas en el paréntesis. my_array.erase(2), en este caso eliminará el primer dato 2 que vea, si no hubiera ningún dato con un 2 no pasaría nada.
  • Si queremos buscar por su índice, se hace con remove_at: my_array.remove_at(0), en este caso en el ejemplo que usamos todo el rato de my_array eliminará el dato «text».
  • también se puede eliminar igual que el anterior con pop_at, hace lo mismo pero podemos borrar el último dato poniendo números negativos. por ejemplo -1 borrará el último dato.
  • pop_back() eliminará el último dato del array y pop_front() eliminará el primer elemento.
  • los datos diccionarios. Son estructuras de datos que permiten almacenar cualquier tipo de dato, desde cadenas de texto o caracteres hasta números enteros, con y sin decimales, arrays e incluso otros diccionarios. var my_diccionario: Dictionary = {

«User1″:»Mike»,

«User2″:»John»,

«User3″:»Mary»,

}

  • Los diccionarios se pueden ver como una colección de llaves y cada llave tiene un valor.
  • las llaves no están ordenadas y no hay llaves repetidas.
  • la única manera de acceder a un valor es a través de su llave.
  • Los diccionarios sirven para guardar muchos datos dentro de una variable, para crear tablas de precios o tablas de excel. también para guardar datos de nuestros programas, traducir juegos o hacer que nuestros juegos sean multiplataforma y se conecten a internet.
  • para crearlo se recomienda que los datos de la izquierda sean letras y los de la derecha como se quiera.
  • Para obtener el valor de un diccionario se puede hacer con get: print(my_diccionario.get(User2) ).
  • constantes: son valores que no cambian, solo se pueden leer, no se pueden modificar, es igual que una variable pero que no pueden cambiar.
    • son útiles para evitar que cambies los valores por error.
    • Se recomienda crearlas con un nombre en mayúsculas, ya que se pueden identificar mejor si tienen el nombre en mayúsculas.
    • el número pi es una constante por ejemplo.
    • funciona poniendo la palabra const en vez de var.
    • Se pueden hacer operaciones igual que una variable pero sin cambiar su valor.
  • enums: los enums son una forma de agrupar constantes relacionadas, son conocidas también como enumeraciones o listas específicas.
    • Los enums sirven para almacenar varias constantes del tipo int como si fueran un diccionario, como por ejemplo las opciones de un menú, o los días de la semana.
    • ejemplo: podríamos crear un menú por ejemplo con constantes.
      • const OPTION_1 = 0
      • const OPTION_2 = 1
      • const OPTION_3 = 2
      • Así siempre tendremos que poner el nombre const, si quisiéramos hacerlo con un enum seria:
        • enum My_Options{OPTION_1, OPTION_2, OPTION_3}
    • Si queremos obtener un valor del enum podemos sacarlo con un punto: print( My_Options.OPTION_2 )
    • Si queremos cambiar valores de un enum hay que cambiarlo de donde declares el enum porque como hemos dicho muchas veces las constantes no pueden cambiar su valor, por lo que habría que cambiar su valor desde el principio.
    • Para obtener el tamaño de un enum se hace con size: print (My_options.size()).
  • variables export: son variables que se pueden modificar desde el editor de godot, desde el inspector saldrá una opción para modificar la variable desde allí igual que en Unity. sirven para modificar las variables sin tocar el código, eso es bueno porque los diseñadores podrían cambiar esos parámetros sin tocar el código.
    • para crear estas variables solo hay que poner la palabra @export delante de la variable: @export var my_string : String = «my name is».
    • podemos poner una nota que saldría en el mismo inspector al rellenar la variable que queramos con placeholder: @export_placeholder(«texto en la casilla») var my_string : string = «». cuando escribas en la línea de texto desaparecerá el placeholder.
    • podríamos hacer igual bool poniendo bool en vez de string y igual a int, float, vector2, etc.
    • tambien se podria hacer con arrays haciendo la misma sintaxi poniendo array y lo s datos los vas poniendo en la sección que te aparecerá en el inspector de godot, igual que diccionarios
    • para crear un export enum tendrias que crear el enum en el mismo export: @export_enum (OPTION_1, OPTION_2, OPTION_3) var OPTIONS : int.
    • siempre tienes que agregarle un tipo de dato, sino dará error, o int, o bool, etc.
  • variables export_range: son para exportar datos pero con un rango.
    • @export_range(min, max) var number : int
  • ciclo for: for es una estructura de control de flujo, repite un conjunto de instrucciones o datos y realiza una acción en cada uno de ellos.
    • la i es diminutivo de iteración.
      • for i in 3:
        print(i)
    • con range(rango).
      • for i in range (3):
      • print(i)
      • asi saldria el mismo resultado que arriba, pero lo podemos hacer con rango
        • for i in range (1, 3):
        • print(i)
      • range con step(pasos). podemos configurar cuantos pasos queremos que avance.
        • for i in range (2, 8, 2):
        • print(i)
        • con este ejemplo empezaría desde el 2 dato, hasta el octavo y contará de dos en dos.
    • también se puede hacer con strings. y con arrays.
  • Funciones: son bloques de código que realizan una tarea específica y pueden ser llamadas o ejecutadas cuando se necesiten. Las funciones sirven para organizar y reutilizar el código. la sintaxis es el nombre func, después el nombre de la función paréntesis y dos puntos. para usar la función solo hay que poner el nombre de la función más los paréntesis.
    • se pueden crear variables en la función.
    • Dentro del paréntesis de una función se pueden poner parámetros que después habrá que devolver.
      • func _ready():
        • print_message(7)
      • func print_message(message)
        • print (message)
        • return message
      • La función ready es propia de godot, nosotros creamos la print_message y le damos el parámetro message. En la función ready llamamos a la función que hemos creado y le damos el valor 7. siempre en la función que creamos hay que devolver el parámetro.
    • podemos especificar también el tipo de dato que queremos en la función añadiendo dos puntos.
      • func sum(number_1: int, number_2: int):
  • setters y getters: son métodos que nos permiten acceder y modificar los atributos(propiedades o variables) de una clase.
    • getters: son los métodos que permiten acceder al valor de un atributo se denomina getters(obtener en inglés)
    • setters: son lo métodos que asignan el valor de un atributo(establecer o fijar en inglés)
      • var my_number =10:
        • get: return my_number
        • set(new value):
          • my_number = new_value
      • la sintaxi es escribimos una variable seguida de dos puntos y justo debajo el get. en este ejemplo el get solo devuelve el valor de my_number y con el get cambiamos el nombre de la variable, osea la variable en sí.
    • Los setters y getters sirven para manipular los datos antes de asignar el valor a una variable.
    • también sirven para hacer validaciones.
    • y también sirven para ejecutar funciones mientras se cambia el valor de una variable.
  • para cambiar la pantalla que sale al principio del juego lo podemos hacer yendo a project/project settings/boot splash
    • En la opción show image si la desactivamos quitamos la imagen de godot, pero si queremos cambiarla por otra necesitamos tener esa opción activada pero tendremos que cambiar la imagen en la sección image de abajo.



Deja un comentario

  • «Ya no hay noticias, solo propaganda» (Mirror’s Edge)
  • «FUS-RO-DAH!» (The Elder Scrolls V: Skyrim)
  • «La mente humana no está preparada para despertar sabiendo que ese será su último día de vida, pero para mí eso es un lujo, no una maldición. Saber que llega el fin es una liberación» (Call of Duty: Modern Warfare 2)
  • «Afuera el mercurio caía rápido. Hacía más frío que en el corazón del diablo, y llovían bieldas de hielo como si el cielo estuviese listo para caerse» (Max Payne)
  • «Hail to the king, baby!» (Duke Nukem)
  • «Es increíble lo que una persona puede llegar a olvidar… pero es más sorprendente lo que puede llegar a esconder» (Final Fantasy VII)
  • «Me siento como si pudiera… como si pudiera… ¡conquistar el mundo!» (Day of Tentacle)
  • «La esperanza es lo que nos hace más fuertes. Es la razón por la que estamos aquí. Es con lo que luchamos cuando todo lo demás se ha perdido» (God of War)
  • «Nuestro futuro está predestinado. Moebius me enseñó el mío hace siglos. Cada uno desempeña el papel que el destino le ha escrito. Nos desplazamos irremisiblemente por caminos preconcebidos. El libre albedrío es una ilusión» (Soul Reaver 2)
  • «¿Crees que soy de las que le gustan los niños? Hombre… hacerlos es otra cosa» (Bayonetta)
  • «The cake is a lie» (Portal)
  • “¿Qué es un hombre, más que una miserable pila de secretos?” (Castlevania: Symphony of the Night)
  • «Ya no hay nadie demasiado joven, ya no, debes considerarla una persona viva. O estás viva o muerta, no eres pequeña, no eres una niña, no eres un niño, no eres fuerte ni inteligente. Estás viva» (The Walking Dead: Temporada 1)
  • «Ya no hay nadie demasiado joven, ya no, debes considerarla una persona viva. O estás viva o muerta, no eres pequeña, no eres una niña, no eres un niño, no eres fuerte ni inteligente. Estás viva» (The Walking Dead: Temporada 1)
  • «Los Spartan nunca mueren, solo desaparecen en acción» (Halo)
  • «Cuanto más te acerques a la luz, mayor será tu sombra» (Kingdom Hearts)
  • «Fue el destino quien me trajo aquí, pero soy yo, quien trazó mi propio camino» (Red Dead Redemption)
  • «¿Hasta dónde estás dispuesto a llegar para salvar a los que más quieres?» (Heavy Rain)
  • «Muchos creen que el tiempo es como un río que fluye seguro y veloz en una dirección; pero yo le he visto la cara al tiempo y os aseguro que no es así. El tiempo es un océano en la tormenta… Os preguntaréis quién soy verdaderamente y por qué digo esto. Venid; os voy a contar una historia como ninguna otra que hayáis escuchado antes» (Prince of Persia)
  • «Detrás de ti, ¡imbécil!» (Resident Evil 4)
  • – Drake: ¿Llevaste a una puta a una iglesia?- Sullivan: ¿Por qué no? (Uncharted 2)
  • «Objection!» (Phoenix Wright)
  • «París en otoño. Los últimos meses del año y el final del milenio. Tengo muchos recuerdos de la ciudad: los cafés, la música, el amor… Y la muerte» (Broken Sword)
  • «¡Vuelve a tu agujero!» (Gears of War)
  • «No sé si alguna vez habéis decepcionado a alguien, os han dado una paliza o habéis fracasado. Pero son esos momentos los que nos definen. Te empujan a ir más allá de lo que nunca creiste, y te obligan a tomar decisiones a cualquier precio» (Infamous 2)
  • «Los hombres son para los amigos, así que no necesito ninguno» (Hitman)
  • «¿Sabes dónde puedo encontrar algunos marineros?» (Shenmue)
  • «¿Qué puede cambiar la naturaleza de un hombre?» (Planescape Torment)
  • «Si me convierto en el número uno… ¿te lo harías conmigo? (No More Heroes)
  • «La mitad de lo que conocemos es mentira… La otra mitad, una mentira bien construida» (Metal Gear Solid 3: Snake Eater)
  • «Esta es mi historia…» (Final Fantasy X)
  • «Los sacrificios los decides tú. Las pérdidas las deciden por ti» (Tomb Raider)
  • «Un hombre me prometió una vez que me libraría de mis cadenas, pero al final, me abandonó en pos de sus propios intereses» (Bioshock Infinite)
  • «Nunca pedí esto» (Deus Ex: Human Revolution)
  • «Todos a los que quería me han dejado o han muerto, todos… excepto tú. Así que no digas que estaría más segura con otro porque estaría más asustada» (The Last of Us)
Diseña un sitio como este con WordPress.com
Comenzar