Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

11

16.07.2014, 12:06

Der Stil eines Programmierers leitet sich sehr stark von dessen Gewohnheiten ab. Gewöhnt man sich also erst an, Dinge umständlicher oder unsauberer als nötig umzusetzen, wird sich das auch später im Programmierstil widerspiegeln.
Außerdem ist nicht zwingend gegeben, dass man durch das Begehen von Fehlern (oder Unschönheiten) merkt, dass man diese begeht, um dies zukünftig vermeiden zu können.

Ein Sprite stellt die Beziehung einer Textur und deren Position auf dem Bildschirm und ggf. (abhängig von der Implementierung) weitere Transformationen und Effekte dar. Wenn man an einer Stelle also bereits einen Sprite speichert, muss nicht zusätzlich noch die entsprechende (gleiche) Textur gespeichert werden.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

12

16.07.2014, 12:15

@all

Am Anfang sollte es Sinn für mich ergeben, ich habe es bis jetzt immer so geregelt das jeder gegner, spieler oder was auch immer eine Textur und einen Sprite hatte. Ich hab die Klasse anfangs wegen meiner Faulheit geschrieben weil ich nicht immer die Textur laden und dann mit setTexture zuweisen wollte (ich wollte nur den Konstruktor aufrufen und den Namen der Datei schreiben müssen) .

Ich habe aber nie drüber nachgedacht das eine Textur auch von mehreren Sprites benutzt werden kann( In diversen Tutorials im Internet wird das auch nicht gemacht). Naja jetzt weiß ich es ja besser vielen dank :)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

16.07.2014, 14:47

Ich denke einfach, dass es ihm (oder generell Anfängern) relativ wenig hilft, wenn man sich über solche Belanglosigkeiten echauffiert, obwohl das ganz klar keinen Fehler oder eine größere Gefahr darstellt.
Das hat überhaupt nichts mit echauffieren zu tun. Das war eine sachliche Feststellung, die man doch mal auch mal äußern darf und sogar sollte. Klar ist es schön, wenn er das irgendwann von selbst merkt. Aber was genau schadet es, wenn man es ihm direkt mitteilt?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

14

16.07.2014, 18:54

Klar ist es schön, wenn er das irgendwann von selbst merkt. Aber was genau schadet es, wenn man es ihm direkt mitteilt?

Man hat am Anfang genug mit der Sprache selbst und ihren Tücken und Features zu kämpfen. Ich finde sowas kann schnell überfordern, wenn jeder irgendeine Stelle des Codes nicht passend findet und das auch direkt mitteilt. Alles zu seiner Zeit, und grade am Anfang darf man sich meiner Meinung nach "überflüssige Wrapper" Klassen und nicht ganz so tollen Stil durchaus erlauben. Allerdings werde ich dir das auch nicht verbieten, solche Dinge anzukreiden, das ist dein gutes Recht. Nur wie gesagt, man sollte die Messlatte mit der man kritisiert ein wenig anpassen ;)
Aber genug des OT, will den Thread nicht komplett zuspammen.

Preakz

Frischling

Beiträge: 30

Wohnort: NRW

  • Private Nachricht senden

15

21.07.2014, 20:19

Hatte vorher den selben Gedanken wie du und hab mich gewundert warum bei meinem MapEditor das Laden eine Ewigkeit gedauert hatte.
Eine Karte hatte ca 5000 Objekte. Jedes Objekt hatte eine sf::Texture als Member, die die Grafik jedes mal neu geladen hat.

Simple Lösung für dich wäre z.B. eine Map ( "Key", textur ) anzulegen und ersteinmal bei dem initialisieren alle Texture die es gibt zu laden.
In deiner Material-Klasse kannst du dann einen Pointer auf eine beliebige Textur, die in deiner Map vorhanden ist, zeigen lassen.
Somit ersparst du dir viel Zeit und Speicher.

Kannst dir ja ggf. mal mein Projekt an dem ich gerade arbeite angucken.
Ich bin zwar kein Profi aber eventuell hilft es dir.

EDIT:
Zu deiner Klasse:
Das Zusammenführen würde ich einfach lassen und einfach das Sprite returnen.
Bsp: getSprite()->setRotation( angle );
oder
getTexture()->set....
Du machst dir ansonsten nur mehr schreibarbeit ("meiner Meinung nach") ...

PS:

Kleiner Hinweis ich versuche dort mit RAII zu arbeiten ...
Hilfreiche Links dazu...
--> Videoreihe: http://www.youtube.com/watch?v=_4K3tsKa1Uc
--> http://www.bromeon.ch/articles/raii.html

:thumbsup:

16

21.07.2014, 22:46

Ich schaus mir mal an vielen dank :)

Werbeanzeige