Jump to content
nomoregames

ANSWERED Ejemplos de usos de clases

Recommended Posts

Muuy buenas a todos

A raiz de el post de Dialogo entre NPC he estado investigando sobre las clases.... pero no me entra, no me cabe..... y es que es muy grande... la duda

Bale, bromas a parte

Soy de esas personas que si no ven ejemplos prácticos se olvidan de las cosas o no las entienden, y ese es mi caso actual

Si tubierais la amabilidad de hacer un pequeño script... algo fácil de entender, para lograr aclararme.... os estaría muy agradecido 😁

 

Muchas gracias 

Share this post


Link to post
Share on other sites

Vale es con V. Tuvierais también. ¿No tienes un corrector ortográfico en el navegador? haz el esfuerzo jo...

Hay multitud de tutoriales de programación orientada a objetos, no creo que tenga mucho sentido soltar aquí cuatro parrafadas.

El motivo de crear una clase, en POO, es para agrupar bien datos, bien código, o ambas, que se aplican de manera conjunta a algo que trataremos como una única "entidad". En el ejemplo del DialogItem, como un diálogo tiene varios parámetros (duración, personaje, texto...), creamos una clase que representa y almacena esos datos conjuntamente. Después creamos varias instancias de esa clase, una para cada línea de diálogo.

Esto se puede extender a casi cualquier "entidad" con la que necesites tratar. Un jugador, un vehículo, un enemigo, un item, una bala, una pieza de un puzzle, el puzzle entero... combinamos objetos con otros objetos para componer clases más complejas que representan y gestionan cada vez una parte mayor de la información de tu aplicación. A diseñar bien se aprende con el tiempo, sobre todo leyendo y escribiendo mucho código (estudiar formalmente también ayuda a tener unas buenas bases).

Recuerda que una cosa es "definir una clase" (class MiClase) y otra "crear una instancia de una clase" (new MiClase()) . Llamamos a veces "objeto" a todo pero hay que tener bien clara la distinción.

 

Edited by J Montes
  • Like 1

Share this post


Link to post
Share on other sites

@J Montes Muy bien explicado, igual de bien que en todos los vídeos y foros que he consultado (incluyendo la documentación de Microsoft) pero pese a toda esa info, no soy capaz de entenderla si no es con ejemplos prácticos... y si... es muy buen ejemplo el de la herencia genética... pero necesito uno o dos ejemplos mas, y que sean distintos y con distintas funcionalidades....

 

Obviamente, no pediría esto si  fuera capaz de solucionarlo con mis propios medios...

Con esto, y echándoos un poco la bronca (a los "masters" de la comunidad), lo que quiero decir es que veo cada día, personas, que buscando ayuda acuden a vuestros brazos, pidiendo consejo y son recibidos con.... un tono.... algo despectivo, y si, ya se que vuestras intenciones son enseñar y ayudar (si no, de que os metíais en un foro de ayuda) y que no forma parte de vuestras intenciones, pero coñ, dejad de ser tan bordes! Sed mas comprensivos con los novatos (digo "los" y no "nosotros  los" por que yebo rondando por aquí mas de un año y sigo haciendo las mismas preguntas idiotas.... lo raro es que no me hecharais)  

Lo que he dicho no va dirigido en especifico ni, a esta conversación, ni a a ti @J Montes, sino a... bueno, ya sabéis quienes sois XD.

Si he soltado esto aquí, es por que es algo que venia observando hace ya algún tiempo y lo tenia que dejar en algún lado

En todo caso, gracias

Share this post


Link to post
Share on other sites

Ya lo comenté en un post anterior, pero si no lo viste, puedes mirar este curso que he puesto para los alumnos de ciclos de FP:

Es una parte de un curso más completo: https://wiki.cifprodolfoucha.es/index.php?title=Programación_Java

Parte de la base que ya sabes crear proyectos con NetBeans (esa parte la damos en clase).

Share this post


Link to post
Share on other sites

Yo creo que no he hablado de "herencia genética" en ningún caso.

Es verdad que a veces respondemos un poco cortantes pero es que... no sé, no has hecho ninguna pregunta de ningún problema concreto que tengas. "Ejemplos de uso de clases" hay miles en Internet, y si ninguno de esos te sirve es difícil ver cómo podemos ayudarte aquí a ciegas. En general, yo si una pregunta no es sobre un caso concreto, no suelo responderla, y te he respondido porque eres tú y sé que te esfuerzas y colaboras. De todas formas, tienes razón el tono no es ni correcto ni didáctico.

También creo que deberíamos cada X días hacer una reunión y que la gente pudiera hacer preguntas y respuestas porque si tienes dudas sobre cómo plantear los proyectos, necesitas mentorización o docencia y un foro es demasiado lento para que puedas progresar, en mi opinión.

Tío, coge un proyecto pequeño y hazlo desde cero: Pong, Arkanoid, Tetris, Snake. Y pregúntanos cosas concretas, muestra el código que falla... Dinos con qué proyecto te has puesto, crea un único hilo para él y vamos a intentar ir siguiendo el progreso desde cero. Prepáralo para webgl, de forma que si es necesario, quienes queramos podamos probarlo rápido y sin complicaciones. Esa es mi propuesta. Sin proyectos "concretos", yo lo único que puedo hacer es recomendarte que sigas tutoriales básicos (como hemos hecho todos ¿eh? que nadie nace aprendido).

1 hour ago, AngelFG said:

Es una parte de un curso más completo

...yo lo siento pero no recomiendo que hagas un curso que usa Java como vehículo cuando necesitas aprender C#. Bastante difícil es aprender un lenguaje como para aprender dos a la vez.

Y más cosas: "Llevo" es con LL y con V. "Echarais" es sin H.   Yo te entiendo pero en C# si te equivocas en estas cosas el compilador da un error ;-).

 

Edited by J Montes
  • Like 1

Share this post


Link to post
Share on other sites

@nomoregames Quiero que entiendas que existe una delgada linea entre el "troll" y la falta de respeto, de verdad lo siento si en algún momento algún usuario te hizo sentir mal pero es algo a lo cual te expones a voluntad.

En cuanto a la programación, es imposible resumir conceptos que ya tienen las palabras justas. Sin embargo intentaré explicarte de la mejor forma posible. 

En la programación orientada a objetos (POO) se intenta llevar el razonamiento al código, esto se logra creando conceptos abstractos de un objeto real, supongamos un Vehiculo.

  • Vechiculo
    • Propiedades
      • Velocidad
      • Peso
      • Tamaño
      • Color
    • Funciones
      • Acelerar
      • Frenar

En este caso, se trata de encapsular la información de una "ENTIDAD" genérica, todos los vehículos cuentan con estas propiedades y funciones.

public class Vehicle
{
    //propiedades
    public int Velocidad;
    public int Peso;
    public Color Color;
    public Vector3 Tamaño;
    
    //funciones
    public void Acelerar() {}    
    public void Frenar() {}    
}

La POO nos proporciona herramientas para la fragmentación o mejor dicho polimorfismo que nos permite heredar y extender clases, antes de continuar es importante que diferencies correctamente que es una clase y que es un objeto. Una clase es la estructura de una entidad, un objeto es una instancia de una clase.

//Esto es equivalente a
public int MiEntero = 0;
//Esto
public Int32 MiEntero = new Int32(0);

Lo que quiero que entiendas es que cuando programas en C# siempre estaras trabajando con clases o estructuras. En el ejemplo use un tipo primitivo (int), estos tipos ayudan a acelerar el desarrollo omitiendo new () para la asignación.

Sin acomplejar más, en resumen una clase es lo que terminas de leer no hay más misterio.

Ahora te queda un largo camino para aprender, los tipos de datos no definen POO, por esta razón es importante entender el concepto de POO y luego buscar las similitudes en el lenguaje que elijas para programar. Si llegaste hasta acá quiere decir que te estás esforzando, pero en 1 año de lectura esto debería estar asimilado, quizas estas buscando mal la información o no estas leyendo con la atención que requiere. La documentación de Microsoft no habla de POO, si no, habla de su lenguaje, características, etc.

Te recomiendo que leas detenidamente este libro, de principio a fin, desconéctate, busca un lugar tranquilo e intenta anotar las cosas que no comprendes en un borrador (a mano), esto ayuda a comprender y visualizar, cuando finalices te puedo asegurar que entenderás el concepto de POO y sabrás solucionar muchas de estos problemas de concepto.

Programación Orientada a Objetos (PDF)

 

¡Saludos!

 

Share this post


Link to post
Share on other sites
4 hours ago, nomoregames said:

@J Montes Muy bien explicado, igual de bien que en todos los vídeos y foros que he consultado (incluyendo la documentación de Microsoft) pero pese a toda esa info, no soy capaz de entenderla si no es con ejemplos prácticos... y si... es muy buen ejemplo el de la herencia genética... pero necesito uno o dos ejemplos mas, y que sean distintos y con distintas funcionalidades....

 

Obviamente, no pediría esto si  fuera capaz de solucionarlo con mis propios medios...

Con esto, y echándoos un poco la bronca (a los "masters" de la comunidad), lo que quiero decir es que veo cada día, personas, que buscando ayuda acuden a vuestros brazos, pidiendo consejo y son recibidos con.... un tono.... algo despectivo, y si, ya se que vuestras intenciones son enseñar y ayudar (si no, de que os metíais en un foro de ayuda) y que no forma parte de vuestras intenciones, pero coñ, dejad de ser tan bordes! Sed mas comprensivos con los novatos (digo "los" y no "nosotros  los" por que yebo rondando por aquí mas de un año y sigo haciendo las mismas preguntas idiotas.... lo raro es que no me hecharais)  

Lo que he dicho no va dirigido en especifico ni, a esta conversación, ni a a ti @J Montes, sino a... bueno, ya sabéis quienes sois XD.

Si he soltado esto aquí, es por que es algo que venia observando hace ya algún tiempo y lo tenia que dejar en algún lado

En todo caso, gracias

Lo que me sorprende es que sigas en el foro después de escribir tantísimas faltas de ortografía en un solo mensaje. Ese "yebo" tiene que ser troll porque vaya tela... 😛

En lo demás yo no soy muy activo pero creo que los compañeros siempre intentan ayudar y la mayoría responden con un tono cordial y para nada despectivo. A veces las preguntas son tan básicas que generan un poco de "rechazo". No se si llamarlo así pero es lo que pienso. Si por ejemplo preguntas ¿Cómo se come una sopa? pues obviamente tienes que entender que no todo el mundo te quiera explicar amablemente la respuesta. (tienes que usar una cuchara, cogerla ... etc). Aunque yo soy de la opinión de que para responder mal, prefiero callarme y que otra persona (o yo en otro momento) lo haga. 

Puedes pensar que el ejemplo de pregunta es absurda, pero preguntar ¿Qué es una clase? es seguramente el capítulo 0 de C#. Ni siquiera es algo propio de Unity. La respuesta de  @francoe1  por cierto es excelente, no puedo aportar nada a ese pedazo de mensaje. De todas formas debes mirarte cursos de C# porque me resulta increible que en ninguno de los que has hecho te quedase claro el concepto de clase. 

Un saludo y ánimo! espero que la explicación del compañero te ayuda a entenderlo de una vez 😛

 

  • Like 1

Share this post


Link to post
Share on other sites
20 hours ago, nomoregames said:

Si tubierais la amabilidad de hacer un pequeño script... algo fácil de entender, para lograr aclararme.... os estaría muy agradecido 😁

Mmm no lo se Rick, parece falso ... Tampoco lo entenderías (sin ser peyorativo), primero porque esto no se explica así. Además de que la pregunta suena a "atajo", que ya es algo incómodo para la persona que pretende ayudarte.

5 hours ago, nomoregames said:

Con esto, y echándoos un poco la bronca (a los "masters" de la comunidad), lo que quiero decir es que veo cada día, personas, que buscando ayuda acuden a vuestros brazos, pidiendo consejo y son recibidos con.... un tono.... algo despectivo, y si, ya se que vuestras intenciones son enseñar y ayudar (si no, de que os metíais en un foro de ayuda) y que no forma parte de vuestras intenciones, pero coñ, dejad de ser tan bordes! Sed mas comprensivos con los novatos (digo "los" y no "nosotros  los" por que yebo rondando por aquí mas de un año y sigo haciendo las mismas preguntas idiotas.... lo raro es que no me hecharais)  

No estaría tan seguro de eso, me explico...

En mi tiempo en la facultad tuve la suerte de cruzarme con profesores bien hijos de puta, que si les preguntabas algo que estaba en el libro (cosas muy obvias claro) te humillaban (un poco en joda) en frente del grupo. En realidad estaban incentivando a tres cosas muy importantes:

  1. Que el alumno siente el culo en la silla, que sepa usar el material disponible (es decir, leerlo al menos).
  2. Que el alumno no suelte la lengua por cualquier cosa en clase. Es decir, hay que estar algo preparado (o al menos entender el tema previo) antes de hablar por hablar (sí, había algunos que paraban la clase como 15 veces por día).
  3. Que en una consulta, el tiempo empleado realmente valga la pena (para ambos, alumno y profesor).

Todo esto desemboca en el respeto al otro (falta de respeto no es necesariamente insultar al otro, aunque podría pasar).

Así que, imaginate lo que un "master" siente cuando lee "Si tubierais la amabilidad de hacer un pequeño script... algo fácil de entender" de un tema super básico (que es la base de), y super bien explicado y ejemplificado en casi cualquier medio (blogs, tutoriales, documentación, libros, videos, Unity, etc) como lo son las 👉 clases 👈. Esto a mi me dice que de tu lado estás haciendo cero esfuerzo, y que yo tengo que laburar por vos. Es una relación unidireccional.

Si esto pasa seguido, lo más seguro es que empiecen los comentarios un poco desagradables, se empieza a notar ese roce poco a poco. Lo más loco es que seguramente que no surja de malas intenciones tuyas, pero sin darte cuenta estás provocando exactamente esto (y más acá que nos conocemos todos).

Mi consejo (en general):

  • Limitar las preguntas (vos mismo dijiste que hacías una tras otra --> "... por aquí mas de un año y sigo haciendo las mismas preguntas idiotas. ")
  • Apuntarlas a algo en concreto, que no sean "Haganme un script que explique el origen del cosmos" ... Por ej: "¿En qué contexto debería utilizar una clase en Unity? Por qué no utilizar una struct para esto?"
  • Preguntar por recursos de ser necesario, si no sabes donde buscar está perfecto. El hecho de preguntar por recursos le dice a quien te ayuda que por lo menos te esforzas en investigar antes.

Que no se mal interprete, es no es una evaluación ni nada por el estilo (aunque pueda sonar a una cuando digo "desmuestra a quienes te ayudan tal o tal cosa"). Por ej, yo no sé nada de VR o XR (ni siquiera sé la diferencia entre estos 😆), pero sé que @iRobb la tiene clara (podría decir lo mismo de Networking y @francoe1 ). Sería super irrespetuoso de mi parte inundarlos de preguntas a la primera (ya sea directamente o creando un hilo), por lo menos me dedicaría una semana a investigar por mi cuenta (de ser posible). En caso de no llegar a nada, o verme realmente perdido, bueno ahí sí acudiría a ellos, mencionando mis logros en lo que respecta al tema, mis avances, dónde investigué, qué documentación visité, etc.

En fin, mi opinión.

 

  • Like 3

Share this post


Link to post
Share on other sites

@lightbug Más claro agua, muy bien explicado!!

 

Y eso que yo he dado mucho el coñazo por aqui, pero siempre hay que buscarselas y si ya dudas en algo concreto pues preguntas aqui.

Ademas es que sino los topics se hacen infumables con paginas y paginas de explicaciones y codigo.

Edited by zelleGames
  • Like 1

Share this post


Link to post
Share on other sites

😦Entonces.... soy para vosotros como un jar jar binks.... tusa misa dolido , tusa misa ahora ser sith, tusa misa acabar con ortografía 

Edited by nomoregames
  • Like 1

Share this post


Link to post
Share on other sites

Pasar al lado oscuro no te dará más poder. Solamente serás un renegado alimentado por los restos de los bocadillos de los demás. Y bocadillos resecos de hace días. Y sí, la ortografía y la semántica son tu mayor enemigo. Lucha contra esa "h" desaparecida. O esa "b" altiva que no debería serlo. Mira en tu interior y lucha! Por tí, por tu gente, por tu patria! @nomoregames confiamos en tí. No nos decepciones.

Edited by iRobb
  • Like 2

Share this post


Link to post
Share on other sites

Jajajjajaja

5 hours ago, iRobb said:

bocadillos resecos de hace días

Me has derrumbado

 

Vale, vale, reconozco que en un principio os tomé por grandes egos, algo elitistas. Pero veo que me equivocaba 

Así que, mis disculpas y tomo nota ¡El corrector será mi mejor amigo a partir de ahora! Pero sabed que no obra milagros y algún puñetazo gramatical se escapará

Edited by nomoregames
"V"ale - va con V no con B.
  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, nomoregames said:

😦Entonces.... soy para vosotros como un jar jar binks.... tusa misa dolido , tusa misa ahora ser sith, tusa misa acabar con ortografía 

xD naa hombre, te queremos.

41 minutes ago, nomoregames said:

Vale, vale, reconozco que en un principio os tome por grandes egos, algo elitistas. Pero veo que me equivocaba 

Así que, mis disculpas y tomo nota ¡El corrector será mi mejor amigo a partir de ahora! Pero sabed que no obra milagros y algún puñetazo gramatical se escapará

De hecho, es maduro que alguien responda así 👍, en la mayoría de los casos siempre hay algunas revueltas, insultos y demás. Supongo que no tendremos que mandar a matarte (por ahora :134_spy:).

  • Like 1

Share this post


Link to post
Share on other sites

jejeje

me he echado las risas con este post

misa tusa dolido

jejeje

es cierto que mucha gente hace preguntas muy ambiguas, muy poco precisas, o igual ni siquiera saben lo que preguntar porque no saben como hacer lo que tienen en mente, o no saben explicarlo porque aun no poseen ese conocimiento para nombrar lo que desean... este mundo es muy amplio y muy tecnico, comenzar puede resultar confuso y dificil.... y puede dar miedo... y el miedo lleva a la ira, la ira lleva al odio, el odio lleva al sufrimiento, y el sufrimiento lleva al lado oscuro... es mejor preguntar, para eso estamos aqui... es cierto que algunos como @lightbug pueden enfadarse y mandar a un maton a tu casa para que te rompa las piernas... 😜 pero de esos hay pocos... la mayoria somos tranquilos y con gusto responderemos a tus preguntas sobre cuantos robles roeria un roedor, si los roedores royesen robles... aunque un roedor no roeria robles, ya que los roedores no roen robles.... pero si un roedor pudiera roer y royera alguna cantidad de robles, yo te responderia gustosamente la pregunta

 

Edited by Igor
  • Like 2

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...