lector de tiempo largo póster por primera vez. Por favor se gentil.clases 'Autoconscientes'?
Avidly crear juegos en VB.net. Siendo un programador aficionado, doy mis juegos de forma gratuita. Como soy un hobbiest sin formación formal, intento educarme sobre los principios de programación adecuados y los sigo cuando programo, como OOP. Sin embargo, hay algunas cosas que obviamente me perdí de ser autodidacta que tal vez yo sabría si tuviera una educación formal.
Una vez que el problema que realmente ha sido mi perdición es cómo las diferentes clases (de ahora en adelante referidos como objetos) 'saben' el uno del otro SIN programar interacción específica (quédense conmigo aquí ... por favor ...)
bien imaginar esto, usted tiene un espacio de juego y los siguientes objetos
- clsShip
- clsMissile
- clsAsteroid
- clsSpaceJunk
Ahora cada uno de estos objetos tiene un Health, X, Y y Z, miembros privados y propiedades que son todos heredados de clsSpaceEntity por argumento sake. Ahora bien, una forma de abordaje de programación entre ellos sería para codificar los datos del siguiente lógica en el bucle principal del juego
para cada buque en una lista de buques
cheque cada clsMissile en una lista para ver si se choca con él y si así, reducir la salud
cheque cada clsAsteroidin una lista para ver si se choca con él y si es así, reducir la salud
cheque cada lista clsSpaceJunka para ver si se choca con él y si es así, reducir la salud
... y así y así sucesivamente para cada objeto siguiente
ect ect ect ...
Ahora bien, esto podría salir bien si hablas del simple ejemplo anterior, pero algunos de mis juegos tienen decenas o incluso CIENTOS de objetos que interactúan de esta manera básica.
Ahora mi pregunta a los programadores experimentados que hay.
¿Hay una manera de programación orientada a objetos para hacer lo siguiente ...
para cada cosa que hereda de clsSpaceEntity
control contra cualquier otro objeto que hereda este tipo (excepto sí mismo) y si colisionan luego reducen la salud
siguiente
?
Este tipo de capacidad para un tipo de objetos/clase o lo que sea para 'conocer' a otro y cómo son iguales/diferentes e interactúan me ahorraría toneladas y toneladas y TONELADAS de codificación.
Cualquier ayuda/ayuda o comentario sobre esto sería muy apreciada. Gracias por su tiempo, perdón por la larga lectura.
No utilice la notación húngara ('clsWhatever'). – SLaks
Parece que está tratando de lograr la separación adecuada de las preocupaciones. Usando algunos conceptos más de OOP, puede hacer una lógica bellamente separada sin métodos gigantes que manejen todo tipo de objeto. ¡Buena suerte! – SLaks
Un poco fuera de tema, pero pareces un poco confundido acerca de las clases y los objetos. Si bien están relacionados, no son lo mismo. Este cuadro de comentarios es un poco pequeño para una explicación completa, pero leer las diferencias te haría la vida más fácil. –