Godot 4 y C#. Entrega 5: Un enemigo animado
9:10
Пікірлер
@markbiophysicist5935
@markbiophysicist5935 Күн бұрын
Hola, amigo. ¿te importa decirme cómo haces para indentar bloques de código por asignación de teclas? He probado en VS Enterprise 2022 y no hay manera de que funcione. Desconozco si hay que deshabilitar alguna de las configuraciones por defecto para conseguir que no se superpongan atajos. Supongo que debe haber alguna explicación lógica. 😰
@vladimirmerilesvelasquez619
@vladimirmerilesvelasquez619 4 күн бұрын
hola buenas, tus videos me ayudan muchísimo. eres un grande! podrías hacer un video de como hacer trampas con área 2d, por ejemplo un pincho en C#
@Oscar-td5sl
@Oscar-td5sl 3 күн бұрын
Una forma que se me ocurre es tratar las trampas como un enemigo, y que se active la animación cuando el jugador jugador colisione. A falta de una mejor solución, yo pondría 2 cajas de colisiones, una que activa la animación y otra que hace daño cuando la animación ha finalizado.
@Oscar-td5sl
@Oscar-td5sl 4 күн бұрын
Muy buen video, he aprendido cosas nuevas y que me parecen mas optimas a como enseñaban en otros tutoriales. Gracias siempre por tu dedicación.
@Jaime-xd4mj
@Jaime-xd4mj 14 күн бұрын
Nacho, gracias por estas explicaciones tan claras. Suscrito.
@adrianjoselopezguzman4155
@adrianjoselopezguzman4155 15 күн бұрын
agradecido, vídeos fáciles de entender y muy buenos. Solo me falta aprender como modificar los datos guardados y como eliminarlos
@NaniBlack-_-
@NaniBlack-_- 19 күн бұрын
Creo que el curso deberia ir como viene por defecto con Gdscript
@Nacho_Cabanes
@Nacho_Cabanes 18 күн бұрын
Es una opinión. Pero de GDscript hay mucho donde elegir, y además mis alumnos trabajan en C#, y se trata de que puedan aplicar sus conocimientos a algo "menos serio".
@Oscar-td5sl
@Oscar-td5sl 19 күн бұрын
Impaciente por los siguientes videos, y la verdad ojalá te animes a hacer mas "temporadas" donde toques el motor en mas profundidad con este lenguaje.
@Nacho_Cabanes
@Nacho_Cabanes 19 күн бұрын
Si hay interés y mi poco tiempo libre lo permite, puedes contar con ello 😊
@DeleteDCode74
@DeleteDCode74 19 күн бұрын
Gracias maestro,recomiendas godot antes que unity??,se integra godot bien con c#??
@Nacho_Cabanes
@Nacho_Cabanes 19 күн бұрын
Para principiantes y aficionados, sí lo recomiendo. Para proyectos de mucha envergadura, todavía tiene más peso Unity. Además, como verás en la próxima entrega, Unity se integra mejor con C# que Godot.
@Oscar-td5sl
@Oscar-td5sl 19 күн бұрын
Tanto Unity como Godot son gratis(Unity con sus clausulas), lo mejor es que te descargues los dos y pruebes con cual te sientes mas cómodo, es engorroso si pero también es importante hacer estos trabajos de investigación. No por tener un mejor motor vas a ser mejores juegos, eso depende de cada uno.
@desoft8b
@desoft8b 19 күн бұрын
Pero no instalaste nada del entorno .NET este ni nada? no es necesario?
@Nacho_Cabanes
@Nacho_Cabanes 19 күн бұрын
No debería hacer falta. Pronto lo usaremos junto con Visual Studio, para tener un entorno más cómodo, pero debería funcionar tal cual.
@aaroncol6165
@aaroncol6165 19 күн бұрын
Saludos desde Venezuela Nacho, estoy cursando Ingeniería de Sistemas y toda la facultad de Ingeniería de Sistemas vemos tus videos para aprender programación. Este es mi código del ejercicio que planteaste: program AmbosPares; var n1, n2: integer; ambosPares: boolean; begin writeln('Dime un numero'); readln(n1); writeln('Dime otro numero'); readln(n2); ambosPares:= (n1 mod 2 = 0) and (n2 mod 2 = 0) = true; if ambosPares then writeln('Ambos numeros son pares') else writeln('Ambos numeros son impares'); ambosPares:= false; end.
@Nacho_Cabanes
@Nacho_Cabanes 19 күн бұрын
Se acerca mucho, pero realmente no necesitas los " = true" cuando das valor a un booleano a partir de una comparación. En casi cualquier lenguaje moderno bastará con algo como: "ambosPares := (n1 mod 2 = 0) and (n2 mod 2 = 0);"
@aaroncol6165
@aaroncol6165 19 күн бұрын
@@Nacho_Cabanes Vale muchas gracias por la corrección Nacho
@sebastian.gallego
@sebastian.gallego 20 күн бұрын
Muy buen video, esperando mas contenido !!!
@Oscar-td5sl
@Oscar-td5sl 20 күн бұрын
Genial video. Es bueno que se le de mas importancia a Godot con C#, que está un poco ninguneado. Espero mas entregas suyas.
@raafaelcusto8627
@raafaelcusto8627 21 күн бұрын
Profesor, Qué alegría volver a verle por acá.
@LuisDiaz-uu7xg
@LuisDiaz-uu7xg 27 күн бұрын
Hola Nacho tu juego del ahorcado C# lo estoy probando hacer con CPC basic... Pero hay algo que no me sale me ayudas ? 10 dim p$(4):dim ver$(30) 20 cls:border 4:mode 2 21 p$(0)="La grande vadrouille" 22 p$(1)="Batman" 23 p$(2)="Le grand bleu" 24 p$(3)="Le cercle des poetes disparus" 25 p$(4)="Fast and furious" 26 RANDOMIZE TIME 30 peli$=p$(rnd*4) 31 ver$=peli$:nbr=len(ver$) 32 for i=1 to nbr 33 if ver$(i)=" " then print " "; else print "-"; 34 next i 40 print peli$ 50 input"Press any key to redo";a$ 60 goto 20 Es esto que no va 33 if ver$(i)=" " then print " "; else print "-";
@Nacho_Cabanes
@Nacho_Cabanes 19 күн бұрын
Sobra el ";" antes de "else". Quizá te interese renumera esas líneas (con la orden RENUM) o dentro de poco te costará insertar órdenes intermedias, si lo llegas a necesitar.
@LuisDiaz-uu7xg
@LuisDiaz-uu7xg 18 күн бұрын
@@Nacho_Cabanes Nacho, ya esta.. ya funciona casi bien.. voy a seguir. Gracias
@Yasmin-dy3uk
@Yasmin-dy3uk 28 күн бұрын
Voy a empezar a aprender esto por simple curiosidad, mi mamá tiene un libro y lo encontré me emocioné demasiado, es Pascal turbo Pascal, ya se python así que creo que no se me dificultará.
@yomisionero
@yomisionero Ай бұрын
Pregunta. Esta explicación es sólo válida para SQL, también trabajamos las 3 relaciones de existencia de la misma manera en Access. Tenía entendido que una relación 1.1 siempre una clave principal viajaba como ajena, la que tú quieras, y listo. Pero claro, eso en Access. Viendo lo que has comentado aquí, no sé si es que Access es más sencillito, o que sólo he aplicado el caso de 1º restricción de asistencia, o que directamente sólo en SQL se aplican estas cuestiones. Gracias por la respuesta.
@Nacho_Cabanes
@Nacho_Cabanes 20 күн бұрын
Lo que yo cuento son conceptos generales, aplicables a cualquier gestor de bases de datos. Lo importante es qué tipo de relación 1:1 estás planteando (sin existencia, una existencia o doble existencia). En cualquier caso, prueba a introducir datos y ver si realmente cumplen esas restricciones, porque quizá te lo hayan explicado de una manera alternativa que también sea válida.
@yomisionero
@yomisionero Ай бұрын
Quería darte las gracias. Muy buena labor docente.
@K4rv3r
@K4rv3r Ай бұрын
Esto es oro puro Nacho, muchas gracias
@AngelProfesor
@AngelProfesor Ай бұрын
Hola. ¿Por qué en el primer ejemplo del matrimonio un rombo está relleno y el otro medio relleno? ¿Es alguna notación que usas o ha sido algo arbitrario y no tiene ninguna importanticia?
@Nacho_Cabanes
@Nacho_Cabanes 20 күн бұрын
Es una notación alternativa para una relación "uno a muchos", menos habitual que otras pero muy expresiva. La zona sombreada indica el lado del "muchos".
@RT-link
@RT-link Ай бұрын
Muchas gracias por lo que haces,me suscribo a tu canal
@ZaTuRsSsS
@ZaTuRsSsS Ай бұрын
Yo la verdad aun sigo sin entenderlo, no soy programador, pero si me gustaria aprenderlo.
@Nacho_Cabanes
@Nacho_Cabanes Ай бұрын
Pues para eso sólo hace falta dedicarle tiempo. Este curso dura más de 30 horas. Si lo sigues de principio a fin, puedes aprender mucho. Si quieres algo más breve (pero, obviamente, menos exhaustivo), tengo una versión compacta, de 2 horas, que puedes encontrar aquí: www.udemy.com/course/lo-basico-de-csharp/
@josev98
@josev98 Ай бұрын
buenas noches ud puede poner el link de descarga pascal para pc.. gracias
@Nacho_Cabanes
@Nacho_Cabanes Ай бұрын
Claro! El compilador se llama Free Pascal y la descarga para Windows y para otros sistemas operativos está en su web oficial : www.freepascal.org/download.html
@LuisDiaz-uu7xg
@LuisDiaz-uu7xg Ай бұрын
Hola Nacho molan mucho tus videos. que te parece BlitzBasic? haras un curso sobre hacer juegos con BLitz?
@Nacho_Cabanes
@Nacho_Cabanes Ай бұрын
Me lo anoto. No he usado Blitz, pero espero que no me costaría mucho hacerme con su manejo básico. Lo que pasa es que tendrá que esperar un poco, porque ahora mismo tengo que terminar el de C (cosa que ocurrirá pronto, estoy preparando ya los contenidos que faltan), y luego quiero crear una versión actualizada del de Godot con C#, para mis alumnos de este año.
@LuisDiaz-uu7xg
@LuisDiaz-uu7xg Ай бұрын
​@@Nacho_Cabanes chulo Muchas gracias
@IanCardoso666
@IanCardoso666 Ай бұрын
Bien! No entendía la representación de la agregación, simplemente se envuelve en un rectángulo todo el conjunto para "agregarlo" a ese conjunto. Luego, podemos tratar toda la agregación como un conjunto
@Nacho_Cabanes
@Nacho_Cabanes Ай бұрын
Efectivamente, así es. Aún así, es algo que se utiliza en pocas ocasiones.
@JoseGonzalez-n7k
@JoseGonzalez-n7k Ай бұрын
Si quieren mas bibliotecas agrueguen crt
@JoseGonzalez-n7k
@JoseGonzalez-n7k Ай бұрын
Extrairdinario
@JoseGonzalez-n7k
@JoseGonzalez-n7k Ай бұрын
Genial esto es mas facil para luego ir a Cc+
@benjaminlopezvidarte3746
@benjaminlopezvidarte3746 Ай бұрын
Genioo muy buenoo, nuevo sub
@exitod9401
@exitod9401 Ай бұрын
gracias me sirvio
@daniloalvarez6181
@daniloalvarez6181 Ай бұрын
Muuuchas gracias! Like y suscrito
@MANGONDRAS
@MANGONDRAS 2 ай бұрын
MI MEGA PROPUESTA: program MediaDeBloques; const Bloques = 2; Datos = 10; var Numeros:array[1..Bloques,1..Datos] of real; suma,media:Real; nombrebloque,opcion,dato,bloque:Integer; begin for bloque:= 1 to Bloques do for dato:= 1 to Datos do begin Write('Dato ', dato,' del bloque ', bloque,':'); ReadLn(Numeros[bloque,dato]); end; repeat suma:= 0; media:=0; WriteLn(); WriteLn('¿A cuales numeros les quieres sacar la media?'); WriteLn('Escribe el numero del bloque o "0" para todos los bloques'); WriteLn('si quieres terminar escribe "-1"'); ReadLn(opcion); WriteLn(); if opcion = 0 then begin for bloque:= 1 to Bloques do for dato:= 1 to Datos do suma := suma + Numeros[bloque,dato]; media := suma / (datos*bloques); WriteLn('La media de todos los bloques es: ', media); end; for bloque:= 1 to Bloques do begin if opcion = bloque then begin nombrebloque := bloque; for dato:= 1 to Datos do suma := suma + Numeros[bloque,dato]; media := suma / Datos; WriteLn('La media del bloque ',nombrebloque,' es: ',media); end; end; until opcion = -1 end.
@MANGONDRAS
@MANGONDRAS 2 ай бұрын
AQUI MI PROPUESTA program MenuDeDatos; const DatosTotales = 10; var Datos,Datos2: array [1..DatosTotales] of integer; Auxiliar,W,Mov,M:Integer; DatoEcontrado: Boolean ; begin for M:= 1 to DatosTotales do begin Write('Escribe el dato ', M,': '); ReadLn(datos[M]); datos2[M] := datos[M] end; WriteLn(); repeat WriteLn(); WriteLn('¿Que haras con la lista de datos?'); WriteLn('1- Mostrar lista'); WriteLn('2- Buscar dato en concreto'); WriteLn('3- Mostrar el dato mas grande'); WriteLn('4- Ordenar lista de datos'); WriteLn('5- Nada, salir'); ReadLn(Mov); WriteLn(); Case Mov of 1: begin WriteLn('lista de datos'); for M := 1 to DatosTotales do begin datos[M] := datos2[M]; Write(datos[M],' '); end; WriteLn(); end; 2: begin WriteLn('escribe el dato a buscar'); DatoEcontrado := false; repeat for M:= 1 to DatosTotales do datos[M] := datos2[M]; readln(W); DatoEcontrado := (W >0) and (W <= DatosTotales); if not DatoEcontrado then WriteLn('Dato no econtrado'); until DatoEcontrado; WriteLn('Este es el dato: ', datos[W]); end; 3: begin Auxiliar := datos[1]; WriteLn('Este es el dato mas grande'); for M:= 1 to DatosTotales do if Auxiliar < datos[M] then Auxiliar := datos[M]; WriteLn(Auxiliar); end; 4: begin WriteLn('Este es el orden de los datos de menor a mayor'); for M:= 1 to DatosTotales-1 do for W:= M+1 to DatosTotales do begin if datos[M] > datos[W] then begin Auxiliar := datos[M]; datos[M] := datos[W]; datos[W] := Auxiliar; end; end; for M:= 1 to DatosTotales do WriteLn(datos[M]); end; end; until Mov = 5; end.
@MauroStegmayer
@MauroStegmayer 2 ай бұрын
como se llama el lenguaje?
@Nacho_Cabanes
@Nacho_Cabanes 2 ай бұрын
Te he contestado ya en el video 13, pero lo hago aquí también. Es "Pascal". Lo pone tanto en el título del video como en la descripción.
@MauroStegmayer
@MauroStegmayer 2 ай бұрын
que lenguajes es??
@Nacho_Cabanes
@Nacho_Cabanes 2 ай бұрын
Pascal. Lo pone tanto en el título del video como en la descripción.
@jozeues
@jozeues 2 ай бұрын
Gracias por los videos. Hay un repositorio en github de los cursos?
@Nacho_Cabanes
@Nacho_Cabanes 2 ай бұрын
Claro, en la mayoría de ellos. Mira la descripción de cada video. En el caso de este curso, que es más antiguo, hay muy pocos fuentes compartidos, y los tienes aquí: github.com/ncabanes/cursosKZbin/tree/master/csharp2020
@smart15976
@smart15976 2 ай бұрын
Felicidades por este curso tan interesante, tienes pensado hacer un curso de C++?
@Nacho_Cabanes
@Nacho_Cabanes Ай бұрын
De C++ no, por ahora, pero tienes uno de C 😉
@rbnzazo
@rbnzazo 2 ай бұрын
dejo por aqui un like y el ejercicio propuesto: program ejemploelse; var n1 : integer; n2 : integer; begin writeln ('dime un numero'); readln (n1); writeln ('dime otro numero'); readln (n2); if (n1 > n2) then writeln ('el primer numero es mayor que el segundo') else if (n1 < n2) then writeln ('el segundo numero es mayor que el primero') else writeln ('ambos numeros son iguales'); end. Seguimos mejorando. Muchas gracias profesor!!
@rbnzazo
@rbnzazo 2 ай бұрын
Grande el profesor Nacho!! Dejo por aqui otro de los ejemplo como hacer el ejercicio propuesto: program ejemploif; var n : integer; begin writeln ('dime un numero'); readln (n); if (n mod 2 = 0) then write ('el numero es par'); If (n mod 2 <> 0) then write ('el numero es impar'); end. Mil gracias por la serie de videos. A mas de uno nos esta salvando y a la vez picando para seguir cada dia un poco mas a indagar en el mundo de la programacion.
@VictorJulioBatistaSera
@VictorJulioBatistaSera 2 ай бұрын
Muy buena explicacion!!
@hada1111
@hada1111 3 ай бұрын
Las relaciones pueden tener id?
@Nacho_Cabanes
@Nacho_Cabanes 3 ай бұрын
Claro. O, hablando con más propiedad, "pueden tener una clave primaria" (compuesta, en ocasiones), que es algo más amplio que una "id". Mira el video con detenimiento (por ejemplo, a partir del minuto 5). En las "muchos a muchos" necesitarás una clave primaria compuesta, y, en ciertas ocasiones, incluso algún campo adicional que también sea parte de esa clave primaria.
@gamer73proprro20
@gamer73proprro20 3 ай бұрын
Desconozco si es la solucion correcta: using System; public class Ejercicio { static void Main() { int tamaño = 11; int[] numeros = new int[tamaño]; bool final = false; for (int j = 1; j < numeros.Length; j++) { Console.WriteLine("ingrese un numero {0}/10", j); numeros[j] = Convert.ToInt32(Console.ReadLine()); } do { int numeroBuscadoPorUsuario; int num = 0; Console.WriteLine("ingrese un numero a buscar"); numeroBuscadoPorUsuario = Convert.ToInt32(Console.ReadLine()); foreach (int i in numeros) { if (numeroBuscadoPorUsuario == i) { string eleccion; Console.WriteLine("el numero {0} ingresado ya fue encontrado ¿desea buscar otro numero?", numeroBuscadoPorUsuario); Console.WriteLine("ingrese Fin para terminar, de lo contrario Presione Intro para buscar otro numero"); eleccion = Console.ReadLine(); num = i; if (eleccion.ToLower() == "fin") { final = true; } } } if (numeroBuscadoPorUsuario != num) { Console.WriteLine("numero no encontrado porfavor Presione Intro para buscar nuevamente"); } } while(final != true); Console.WriteLine("cerrando programa"); Console.ReadLine(); } }
@sergiooscar37
@sergiooscar37 3 ай бұрын
Hola. Recuerdo este lenguaje, lo estudié en la década del '90.
@gamer73proprro20
@gamer73proprro20 3 ай бұрын
tengo 16 años y siempre me intereso el mundo de la programacion, este lenguaje en particular me provocaba interes ahora que porfin encontre a alguien que explica conciso y preciso, y en videos tan cortos como para verlos en los resesos de clases e tenido grandes avances de ver la lista de reproduccion y su libro de 444 paginas!!
@gallo-s1s
@gallo-s1s 3 ай бұрын
buenas, cuando intento compilar lo hace pero me aparece una pantalla donde me tira información (compiling (normal mode)) y al querer ver la consola o poner lo de readkey, no me aparece el resultado. qué podría ser eso?
@miguelrf7949
@miguelrf7949 3 ай бұрын
Hola, este video no tiene solución en github? Me parece interesante el tema de mostrar el menu, pero no se como hacerlo.
@Nacho_Cabanes
@Nacho_Cabanes 3 ай бұрын
Es cierto, tienes los ejemplos desarrollados aquí: github.com/ncabanes/cursosKZbin/tree/master/pascal2021 pero no he compartido ninguna solución de ejemplo para el ejercicio propuesto. Aun así, en los comentarios del video tienes una propuesta de solución, aportada por un usuario. Ahí podrás ver que hacer un menú es poco más que varios "writeLn" y un "case".
@MANGONDRAS
@MANGONDRAS 4 ай бұрын
Quize hacer las dos en un solo programa: program array_example; var numeros: array [1..10] of Integer ; p: Byte; impar: Boolean; impares: Integer; begin impares :=0; WriteLn('escribe 10 numeros'); for p := 1 to 10 do begin WriteLn('numero',' ', p, ); ReadLn(numeros[p]); end; Writeln('el primer numeri que escribiste fue:',' ', numeros[1]); Writeln('el ultimo numero que escribiste fue:',' ', numeros[10]); for p:= 1 to 10 do begin impar:= numeros[p] mod 2=0; if impar = true then Inc(impares); end; WriteLn('el total de numeros impares es',' ',impares); end.
@shermanperez3386
@shermanperez3386 4 ай бұрын
Mil gracias! fácil de seguir y atento a detalles 😁
@MANGONDRAS
@MANGONDRAS 4 ай бұрын
Yo hice que solo pudieras escribir mayúsculas, si escribes alog que no sea una mayúscula te da error. program escribe_una_letra; uses crt; var letra : Char; i : byte; begin repeat WriteLn('escribe una letra, entre la A y la Z'); ReadLn(letra); i := Ord(letra); if (i <65) or (i >90) then WriteLn('no puedes escribir eso'); until (i >=65) and (i <=90); WriteLn('aqui estan las letras que estan antes de tu letra'); for i := i+1 downto 65 do begin Writeln(Chr(i)); end; end.
@Chequelo2410
@Chequelo2410 4 ай бұрын
gracias por los videos
@CrisSanMArt-u5n
@CrisSanMArt-u5n 4 ай бұрын
Eso esta obsoleto! Yo ahora uso→ c: Run"disc" y después dir.exe para acto seguido teclear Run"anivemin" y ahí ya... Empieza la magia y el auténtico combate entre el hombre y la maquina para ver que inteligencia dominará el mundo..
@Nacho_Cabanes
@Nacho_Cabanes 2 ай бұрын
Sí, algunos juegos se lanzaban con su nombre, otros con RUN "DISC", otros con |CPM... había distintas formas, según cada juego, pero la que indico en el video era la más habitual.