Du bist nicht angemeldet.

Werbeanzeige

Nightmaremen

Treue Seele

Beiträge: 110

Beruf: Schüler

  • Private Nachricht senden

371

07.02.2014, 15:52

grade mal an meinem projekt weitergearbeitet , 2D einbildhintergrund und das hier vorgefunden

C-/C++-Quelltext

1
2
    m_pSpriteBackground = new CSprite;
    m_pSpriteBackground->Load("..\\Data\\Background.bmp",1,800,600);

Darauf fragte ich mich welcher Depp aus einem Einzelbildhintergrund ein animiertes sprite macht ....
bis mir auffiel das ich das war ;(
Hat komischerweise trotzdemfunktioniert ?(
"for a silent travel, u´d better take the next Train" (Lightning)

dot

Supermoderator

Beiträge: 9 850

Wohnort: Graz

  • Private Nachricht senden

372

07.02.2014, 15:54

Ich würde mich weiters die Frage stellen, wieso genau das Sprite per new erzeugt werden muss und wenn es wirklich sein muss, wieso kein std::unique_ptr verwendet wird... ;)

Nightmaremen

Treue Seele

Beiträge: 110

Beruf: Schüler

  • Private Nachricht senden

373

07.02.2014, 17:43

leider noch nichts von std::unique_ptr gehört :/ aber das mit dem new erschien mir ganz ok :ill:
"for a silent travel, u´d better take the next Train" (Lightning)

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

374

07.02.2014, 18:25

leider noch nichts von std::unique_ptr gehört :/ aber das mit dem new erschien mir ganz ok :ill:


http://msdn.microsoft.com/en-us/library/hh279674.aspx

Falls du einen älteren Compiler hast, der das noch nicht unterstützt, dann guck dir da an:
http://www.boost.org/doc/libs/1_55_0/lib…r/smart_ptr.htm

Beiträge: 1 239

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

375

07.02.2014, 19:11

Zitat

Falls du einen älteren Compiler hast...

... dann auf eine aktuellere Version umsteigen.
Sogar Visual Studio unterstützt das schon seit mindestens Version 10.

Nightmaremen

Treue Seele

Beiträge: 110

Beruf: Schüler

  • Private Nachricht senden

376

07.02.2014, 19:29

danke für den link mal sehen ob ich diesesmal aus einer wiki schlau werde.... bei der sdl hats nichtso ganz funktioniert:D
außerdem den 2013 vs c++ gibts für studenten umsonst in der professional edition, und ich spar viel gutes Bares MWAHAHAHA :P
Edit:klingt einleuchtend , wie sie zu benutzen sind , aber um ehrlich zu sein erkenn ich keinen unterschied , ich meine im endeffekt machen beide doch dasselbe oder?
"for a silent travel, u´d better take the next Train" (Lightning)

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

377

07.02.2014, 19:50

Zitat

Falls du einen älteren Compiler hast...

... dann auf eine aktuellere Version umsteigen.
Sogar Visual Studio unterstützt das schon seit mindestens Version 10.


Seit Visual Studio 2012. Man kann aber nicht immer welchseln wie man will bzw. es kann auch Dinge erschweren. Viele Libs gibt es z.B. nicht für Visual Studio 2013. Bei uns benutzen noch alle VS2010 und wir hätten auch nur die Möglichkeit auf VS2012 zu gehen. Daher würde z.B. ich zurzeit auch privat nicht auf 2013 gehen, sondern nur auf 2012. Im Grunde hast du zwar recht, aber das ist halt nicht immer so einfach.

@ Nightmaremen
Welche beiden? Normale Pointer und Smart Pointer? Da liegt ein gewaltiger Unterschied.

Zitat


They are crucial to the RAII or Resource Acquisition Is Initialialization programming idiom.

Nightmaremen

Treue Seele

Beiträge: 110

Beruf: Schüler

  • Private Nachricht senden

378

07.02.2014, 20:20

wenn in dieser zeile der unterschied erklärt wird, dann hab ich wohl was wichtiges nicht übersetzen können , zumindest den sinn nicht D: was ist denn genau der unterschied ich erkenne momentan keinen. Ich bin noch Anfänger und habe bei solchen Wikieinträgen das gefühl einer Tonausblendung, also ich versteh nur bahnhof, normal wenns mir einer so erklärt versteh ichs aber mit Wikieinträgen egal welcher sprache kann ich nix anfangen!!
"for a silent travel, u´d better take the next Train" (Lightning)

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

379

07.02.2014, 20:46

http://en.wikipedia.org/wiki/Resource_Ac…_Initialization

Es geht im Grunde darum, dass du dich damit nicht mehr selbst um die Speicherverwaltung kümmern musst. Wenn du mit new Speicher anforderst, dann bist du auch dafür verantwortlich, dass er wieder frei gegeben wird. Mit den Smart Pointern hast du ein Objekt, welches das für dich übernimmt (jenachdem welchen Smartpointer du verwendest).

Wenn du gerade noch am lernen bist, dann solltest du imho lieber von SDL auf SFML umsteigen und bevor du ein Spiel bastelst erstmal deine Kenntisse festigen, aber das gehört nicht in diesem Thread.

Edit:
Ein oft verlinkter Artikel zu RAII
http://www.bromeon.ch/articles/raii.html

Nightmaremen

Treue Seele

Beiträge: 110

Beruf: Schüler

  • Private Nachricht senden

380

07.02.2014, 21:02

alles klar, kenntnisse gesammelt in SDL hab ich schon ein paar und will mich mit dem Projekt jetzt halt weiterentwickeln^^
"for a silent travel, u´d better take the next Train" (Lightning)

Werbeanzeige