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

1

02.03.2014, 22:26

Xcode 5.1 und SDL 1.2

Guten Abend!

Ich möchte mich zuerst kurz vorstellen, da es sich hier um meinen ersten Beitrag in diesem Forum überhaupt handelt.
Vor einigen Wochen habe ich erstmalig mit C++ Kontakt, früher habe ich nur im Bereich Webentwicklung gearbeitet. Mittlerweile
bin ich im Kapitel 12 des Buches "C++ für Spieleprogrammierer" angelangt. Leider funktioniert jedoch schon
das Erstellen und Einrichten des Projektes nicht.

Nun meine Frage: Ist Xcode 5.1 mit SDL 1.2 kompatibel? Irgendwie scheine ich mittlerweile dies zu bezweifeln. Ich habe alle Einstellungen
wie im Buch beschrieben vorgenommen. Leider erhalte ich multiple Fehlermeldung wenn ich die SDLMain.m und SDLMain.h hinzufüge. Alle
Fehler befinden sich in der Datei SDLMain.m (Semantic issue, ARC Restrictions ...). Wenn ich diese beiden Dateien nicht hinzufüge (was ja keinen Sinn macht, denke ich, da ich diese brauche), dann erhalte ich nur folgenden Fehler:

ndefined symbols for architecture x86_64:

"_main", referenced from:

implicit entry/start for main executable

(maybe you meant: _SDL_main)

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)


Ich hoffe ihr könnt mir weiterhelfen. Vielen Dank schon im voraus,

lg, e

Maggot

Frischling

Beiträge: 51

Wohnort: Wien

Beruf: Software Entwickler

  • Private Nachricht senden

2

02.03.2014, 22:36

Hi,

probier es doch mal so wie es in diesem Tutorial gezeigt wird: http://lazyfoo.net/SDL_tutorials/lesson0…xcode/index.php

Lg

3

02.03.2014, 23:04

Danke für die Antwort. Funktioniert leider auch nicht. Gleiches Problem.

Im Anhang ein Screenshot.
»KPEric« hat folgendes Bild angehängt:
  • Bildschirmfoto 2014-03-02 um 23.34.19.png

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KPEric« (02.03.2014, 23:35)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

03.03.2014, 06:53

Google sagt: http://stackoverflow.com/questions/66460…le-in-a-project

In diesem Zusammenhang solltest Du Dich unbedingt mit Deiner Sprache und dem dazu gehörenden Compiler auseinandersetzen: http://www.raywenderlich.com/5677/beginn…in-ios-5-part-1
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]

5

03.03.2014, 13:28

Vielen Dank für die Antworten.

Leider konnte ich das Problem immer noch nicht lösen, auch nicht nach einigen Stunden. Mittlerweile war es mir möglich mit dem "-fno-objc-arc"
die ARC in der Datei SDLMain.m zu deaktivieren und so keine Fehler mehr zu generieren jedoch zeigt es mir nun folgenden Fehler an nachdem
ein "Build succeded" ausgegeben wurde:

Fehler beim Laden von: Player.bmp

Fehlermeldung: Couldn't open Player.bmp


Ich bin ratlos. Verstehe nicht wieso es nicht klappt obwohl ich genau nach dem Buch gegangen ist. Arbeitet sonst niemand mit der neusten Xcode-Version und

hat einen gleichen Fehler generiert?

Cookiezzz

Frischling

Beiträge: 91

Wohnort: Deutschland

Beruf: Schüler

  • Private Nachricht senden

6

03.03.2014, 13:40

Gibt es denn die Player.bmp? Wenn ja, ist sie im richtigen Ordner?

7

03.03.2014, 13:45

Ja die existiert. Liegt im Hauptordner drin.

Ich muss ja an diesem Pfad nichts ändern, nehme ich an?

void CPlayer::Init ()

{

// Spielersprite erstellen

m_pSpritePlayer = new CSprite;




m_pSpritePlayer->Load ("Player.bmp", 11, 64,64);

m_pSpritePlayer->SetColorKey (255, 0, 255);




// Schuss-Sprite erstellen

m_pSpriteShot = new CSprite;




m_pSpriteShot->Load ("Laser.bmp", 0, 64, 64);

m_pSpriteShot->SetColorKey (255, 0, 255);




} // Init

8

03.03.2014, 14:11

Ich entscheide mich für einen anderen Weg. Werde wohl versuchen mit SDL Version 2.0.1 zu arbeiten und den Code entsprechend anpassen.
Vielleicht hilft dies jemanden anderes irgendwann einmal ebenfalls. Ich stelle mir vor, dass es auch hier Probleme geben wird. Ich hoffe ich kann
bei Fragen in das Forum hier schreiben.
Ich werde versuchen meinen Weg hier zu kommentieren.

1. Erstellen des Projektes -> Gemäss folgender Website: http://blog.davidecoppola.com/2013/08/22…s-x-in-xcode-4/
2. Anpassung Code:


2.1. Framework.cpp
m_pKeystate = SDL_GetKeyState (NULL);

wird zu

m_pKeystate = SDL_GetKeyboardState(NULL);

da folgende Syntax: const Uint8* SDL_GetKeyboardState(int* numkeys)
muss in Framework.hpp noch verändert werden:

Uint8 *m_pKeystate;

wird zu:

const Uint8 *m_pKeystate;

---------

// Vollbild oder Fenstermodus einstellen
if (bFullscreen == true)
{
m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
SDL_HWSURFACE | SDL_DOUBLEBUF |
SDL_FULLSCREEN);
}
else
{
m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
SDL_HWSURFACE | SDL_DOUBLEBUF);
}

wird zu:

// Vollbild oder Fenstermodus einstellen
if (bFullscreen == true)
{
m_pScreen = SDL_CreateWindow("My Game Window",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
ScreenWidth,
ScreenHeight,
SDL_WINDOW_FULLSCREEN | SDL_WINDOW_OPENGL);
}
else
{
m_pScreen = SDL_CreateWindow("My Game Window",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
ScreenWidth,
ScreenHeight,
SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL);
}

zusätzlich muss in der Framework.hpp noch verändert werden:

SDL_Surface *m_pScreen;

wird zu:

SDL_Window *m_pScreen;

2.2. Sprite.cpp

SDL_SetColorKey (m_pImage, SDL_SRCCOLORKEY,
SDL_MapRGB (m_pImage->format, R, G, B) );

wird zu

SDL_SetColorKey (m_pImage, SDL_TRUE,
SDL_MapRGB (m_pImage->format, R, G, B) );

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »KPEric« (03.03.2014, 15:29)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

03.03.2014, 21:15

Leider konnte ich das Problem immer noch nicht lösen, auch nicht nach einigen Stunden. Mittlerweile war es mir möglich mit dem "-fno-objc-arc"
die ARC in der Datei SDLMain.m zu deaktivieren
Das ist natürlich schade, dass es Dich trotzdem mehrere Stunden gekostet hat, obwohl das eindeutig in meinem ersten Link als Hinweis drin steht und in meinem zweiten Link erklärt wird, was das ist und wieso man es braucht.
Aber gelöst ist wohl gelöst und das genügt. Du solltest Dir den ARC-Artikel dennoch dringend durchlesen.
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]

10

03.03.2014, 23:04

Leider konnte ich das Problem immer noch nicht lösen, auch nicht nach einigen Stunden. Mittlerweile war es mir möglich mit dem "-fno-objc-arc"
die ARC in der Datei SDLMain.m zu deaktivieren
Das ist natürlich schade, dass es Dich trotzdem mehrere Stunden gekostet hat, obwohl das eindeutig in meinem ersten Link als Hinweis drin steht und in meinem zweiten Link erklärt wird, was das ist und wieso man es braucht.
Aber gelöst ist wohl gelöst und das genügt. Du solltest Dir den ARC-Artikel dennoch dringend durchlesen.
Ich danke dir für den Hinweis. Leider hat es bei mir noch nicht zum lösen des Problemen geführt. Es scheint alles richtig zu laufen aber es öffnet sich kein Fenster. Und wie gesagt erscheint folgender Fehler:


Fehler beim Laden von: Player.bmp

Fehlermeldung: Couldn't open Player.bmp



Die Artikel habe ich gelesen. Naja, vielleicht hat noch jmd. eine Idee. Ich bleibe dran.

Werbeanzeige