Muy buen tutorial, ahora estoy trabajando en mi propio matamarcianos que espero poder enseñar pronto. Y por supuesto, con ganas de saber mas sobre Godot en C# ya sea con un proyecto nuevo o continuando con este agregándole mas funcionalidades. Ya está en su mano lo que le sea mas cómodo o inspirador. Un abrazo muy fuerte.
@magmasempai64412 күн бұрын
Que buen tuturial, por favor has una serie de tuturiales juego de plataformas
@angeltrujillo4262 күн бұрын
Hola Buen tutorial, pues me gustaria que siguieras puliendo mas el juego, un saludo
@kg3233og2 күн бұрын
bro, ayudame me manda error de compilación, se Python y voy a aprender pascal primero porque encontre un libro de mi madre que se llama Pascal Turbo Pascal,y segundo porque al ser compilado creo yo que me ayudara a entender otros como c++, aqui el error: compilation aborted (me paso algo muy similar con el c++)
@kg3233og2 күн бұрын
era porque puse " en ves de ' jajajaj.
@actionlight21025 күн бұрын
Como se hace para corregir un fallo tipográfico en una linea?gracias
@Nacho_Cabanes4 күн бұрын
La forma larga es volver a teclear toda la línea para reemplazarla. Si la línea no es muy breve, resulta más práctico usar la orden EDIT para poder modificarla (por ejemplo: EDIT 20)
@actionlight21024 күн бұрын
@@Nacho_Cabanesmuchas gracias nacho, estoy escribiendo un programa de revista en mi amistad cpc y voy por línea 87, en la 22 hay fallo y si subo cursor hacia arriba tras List, no aparecen las líneas superiores iniciales,en pantalla. Intenté con GOTO 22 pero modifico y no hace efecto Miraré con Edit, gracias, saludos!!
@angeltrujillo4269 күн бұрын
Hola Buen tutorial, serie posible que hicieras un curso sobre C# desde cero, un saludo.
@Nacho_Cabanes4 күн бұрын
Ya lo tienes, con más de 150 vídeos y más de 30 horas de duración, en esta lista de reproducción: kzbin.info/aero/PL0bfr51v6JJEvSoAnCNYHM9b-75JQSoad
@angeltrujillo4269 күн бұрын
Hola Buen video, espero que despues de esto sigas con un juego en 3D, un saludo.
@Nacho_Cabanes4 күн бұрын
Me parece buena idea. Aun así, quizá sea más razonable hacer antes un pequeño juego de plataformas en 2D, para ver cosas como la gravedad y el diseño de niveles, pero acepto sugerencias. ¿Qué tipo de juego te gustaría?
@cristianruiz648710 күн бұрын
Excelente lista de reproduccion, muchas gracias por compartir estos videos, me sirvieron para regularizar una materia de mi carrera de profesorado de secundaria en matematicas, ahora estoy preparandome para el examen final y me esta sirviendo nuevamente. Saludos desde Argentina.
@magmasempai644116 күн бұрын
Muy útil , gracias
@sebastiantorres698517 күн бұрын
program booleanos; var pares: boolean; par1, par2: integer; begin pares:=false; //inicializo previamente la variable boolean con el valor (falso) repeat //Bucle repeat-unitl por si el usuario ingresa numeros que no son pares write('Escribe el primer numero par: '); readln(par1); writeln; write('Escribe el segundo numero par: '); readln(par2); if (par1 mod par2 = 0) then pares:=true //Cambia de valor a (verdadero) cuando el resto de la división entre par1 y par2 sea 0 else writeln('Los numeros que ingresaste no son pares') until pares; //El ciclo culmina cuando ambos sean pares writeln('Los numeros ingresados son pares!'); end.
@Nacho_Cabanes15 күн бұрын
Te acercas, pero con tu condición compruebas si uno es múltiplo del otro, no si son pares.
@cruzsandoval907119 күн бұрын
Estimado amigo Nacho, he aprendido pascal y SQL en tu sitio web hace ya 7 años y me ha ayudado a automatizar muchas actividades en mi trabajo, desde reportes automatizados, procesos de carga de información a bases de datos hasta procesos ETL, interfaces para terminales 3270, sistemas interfazados con correo mediante COM,...ETC. gracias totales por tu dedicación y esfuerzo.
@Oscar-td5slАй бұрын
Muy bueno como siempre, no se si entrará en tus planes pero quizás añadir algunos niveles para próximas entregas estaría bien
@Nacho_Cabanes28 күн бұрын
Buena sugerencia. Antes nos queda hacer que nos disparen y mejoras adicionales como tener varias vidas y un fondo en movimiento, pero sí, es buena idea. Tanto el caso (sencillo) de "mayor dificultad" en cada nivel (mayor velocidad, menor tiempo entre disparos) como el caso de niveles con enemigos distintos y cuya lógica también pueda ser distinta. Me lo apunto.😉
@lucasbracamonte8239Ай бұрын
Super recomendado está lista de reproducción.
@lucasbracamonte8239Ай бұрын
Hola,gracias de agradezco por estos tutoriales me sirven de mucho.
@bobertg213sanimations3Ай бұрын
Muchas gracias, esta informacion vale millones. la mayoria de tutoriales en monogame estan en ingles. me has salvado
@labacademia_jLАй бұрын
espectacular, muchísimas gracias!!
@gigatronicsgt7268Ай бұрын
no me corre el programa ,, me sale al compialcion fallo todo el progfram esta ok no se porque no corre
@Nacho_CabanesАй бұрын
Los mensajes de error están para ayudarte. Mira en qué línea y columna te dice que está el error. Si aun así no lo encuentras, copia y pega aquí tu programa.
@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. 😰
@Nacho_CabanesАй бұрын
No acabo de entender la pregunta. Por una parte, Visual Studio suele "auto indentar" en cuanto ve que comienzas algún bloque (al abrir llaves, por ejemplo). Por otra parte, siempre está la alternativa de seleccionar todo un bloque de líneas y usar la tecla Tab o la combinación Mays+Tab para mover todo ese bloque a derecha o izquierda, respectivamente. ¿Te refieres a eso?
@vladimirmerilesvelasquez619Ай бұрын
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Ай бұрын
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.
@Nacho_CabanesАй бұрын
Lo tienes en el siguiente video, en el 7 😉
@Oscar-td5slАй бұрын
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Ай бұрын
Nacho, gracias por estas explicaciones tan claras. Suscrito.
@adrianjoselopezguzman4155Ай бұрын
agradecido, vídeos fáciles de entender y muy buenos. Solo me falta aprender como modificar los datos guardados y como eliminarlos
@NaniBlack-_-Ай бұрын
Creo que el curso deberia ir como viene por defecto con Gdscript
@Nacho_CabanesАй бұрын
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Ай бұрын
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Ай бұрын
Si hay interés y mi poco tiempo libre lo permite, puedes contar con ello 😊
@DeleteDCode74Ай бұрын
Gracias maestro,recomiendas godot antes que unity??,se integra godot bien con c#??
@Nacho_CabanesАй бұрын
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Ай бұрын
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Ай бұрын
Pero no instalaste nada del entorno .NET este ni nada? no es necesario?
@Nacho_CabanesАй бұрын
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Ай бұрын
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Ай бұрын
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Ай бұрын
@@Nacho_Cabanes Vale muchas gracias por la corrección Nacho
@sebastian.gallegoАй бұрын
Muy buen video, esperando mas contenido !!!
@Oscar-td5slАй бұрын
Genial video. Es bueno que se le de mas importancia a Godot con C#, que está un poco ninguneado. Espero mas entregas suyas.
@coyotico20Ай бұрын
Profesor, Qué alegría volver a verle por acá.
@LuisDiaz-uu7xg2 ай бұрын
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Ай бұрын
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Ай бұрын
@@Nacho_Cabanes Nacho, ya esta.. ya funciona casi bien.. voy a seguir. Gracias
@Yasmin-dy3uk2 ай бұрын
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á.
@yomisionero2 ай бұрын
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Ай бұрын
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.
@yomisionero2 ай бұрын
Quería darte las gracias. Muy buena labor docente.
@K4rv3r2 ай бұрын
Esto es oro puro Nacho, muchas gracias
@AngelProfesor2 ай бұрын
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Ай бұрын
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".
@RTLINK-developer2 ай бұрын
Muchas gracias por lo que haces,me suscribo a tu canal
@ZaTuRsSsS2 ай бұрын
Yo la verdad aun sigo sin entenderlo, no soy programador, pero si me gustaria aprenderlo.
@Nacho_Cabanes2 ай бұрын
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/
@josev982 ай бұрын
buenas noches ud puede poner el link de descarga pascal para pc.. gracias
@Nacho_Cabanes2 ай бұрын
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-uu7xg2 ай бұрын
Hola Nacho molan mucho tus videos. que te parece BlitzBasic? haras un curso sobre hacer juegos con BLitz?
@Nacho_Cabanes2 ай бұрын
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-uu7xg2 ай бұрын
@@Nacho_Cabanes chulo Muchas gracias
@IanCardoso6662 ай бұрын
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_Cabanes2 ай бұрын
Efectivamente, así es. Aún así, es algo que se utiliza en pocas ocasiones.
@NestorMonsalve183 ай бұрын
Si quieren mas bibliotecas agrueguen crt
@NestorMonsalve183 ай бұрын
Extrairdinario
@NestorMonsalve183 ай бұрын
Genial esto es mas facil para luego ir a Cc+
@benjaminlopezvidarte37463 ай бұрын
Genioo muy buenoo, nuevo sub
@exitod94013 ай бұрын
gracias me sirvio
@daniloalvarez61813 ай бұрын
Muuuchas gracias! Like y suscrito
@MANGONDRAS3 ай бұрын
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.
@MANGONDRAS3 ай бұрын
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.
@MauroStegmayer3 ай бұрын
como se llama el lenguaje?
@Nacho_Cabanes3 ай бұрын
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.