Einzelnen Beitrag anzeigen
  #9  
Alt 11.12.2002, 22:14:05
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
an Ben20
ja natürlich kannst du das auch mit Funktionen machen, aber dann hast du handler und handler sind etwas TOTAL mieses, weil du mit einem handler alleine nichts vernünftiges anstellen kannst.
beispielsweise für eine Datenbank verbindung hast du den mySQL handler, zuerst
machst du mysql_connect
dann mysql_select_db
dann mysql_query
dann mysql_fetch_row
und am schluss noch die verbindung trennen. Du kannst das allles allerdings wahnsinnig auf deine bedürfnisse anpassen, weil in einem webprojekt hast du immer die gleiche db und auch die gleichen grundeinstellungen.
einer klasse kannst du sagen, was sie mit der datenbankverbindung tun soll, weil die in der klasse gespeichert wird, und von dieser verwaltet wird, was das ganze viel einfacher macht.
Das ist Objektorientierte Programmierung, einzelne Aufgaben werden durch Klassen stark vereinfacht, das macht auch das programmieren von Spielen wie Doom 3 oder Quake 3 möglich: wenn man das ganze in genug kleine unterobjekte aufteilt, besteht der hauptprogrammablauf nur noch aus

taste gedrückt? Neue position? JA --> sichtfeld anpassen (wie, weiss die Grafik Engine selbst, man muss ihr nur die position geben), nein? --> nichts tun.
schuss? ja: erstelle neuen schuss!
alle aktiven schüsse: lasse sie sich weiterbewegen (die eigenschaft, wohin und wie schnell wissen die schüsse selbst)
Hat ein schuss wen getroffen? Wenn ja, finde raus, wen und sage dem objekt, dass es weniger hitpoints hat)
sind bots da? Sehen sie dich? ja --> schau ob sie auf dich schießen können und tu es, wenn sie nicht gerade nachladen nein? lass sie herumsuchen (bots finden selbstständig einen weg)
hast du mehr als 20 Frags?
Du hast gewonnen!

Und DAS IST QUAKE 3!
Es gibts klassen für Bots, es gibt klassen für die 3D Welt und klassen für die Player und Klassen für die Schüsse, man sagt den klassen nur, was sie tun sollen (sich einfach bewegen für waffen; in die und die richtung bewegen für player, die welt aus der position zeigen für die Grafikengine)
Das ganze hat noch den vorteil, dass man somit solche spiele logisch durchplanen kann, indem man die einzelteile als objekte sieht, die eigenschaften haben (eben vorwärtsfliegen für Waffen zum Beispiel) Wenn die objekte gut geplant sind, ist die realisierung von was großem auf einmal möglich.
Aber wenn man sowas nicht macht, und einfach mit tippen anfängt: Wie würdet Ihr Quake programmieren?
Mit Zitat antworten