Eigenes Spiel mit C/C++


relei

Well-Known Member
Staff member
Joined
Dec 27, 2006
Messages
1,205
Hallo,

ich würde auch gerne versuchen ein Spiel für den GP2x zu programmieren. Dabei würde ich dies gerne in C/C++ und der SDL schreiben.

Leider weiß ich nicht wie. :wacko:
Kann jemand bitte ein kleines Beispiel schreiben, in dem sich z.B. beim drücken von „X“ zwei Würfel aufeinander zu bewegen. Nach der Kollision sollte dann „Peng“ auf den Bildschirm geschrieben werden. Die Würfel sollten dabei aus Bildern bestehen (jpg, bmp).

Ich weiß nicht, ob das zuviel verlangt ist. Ich würde mich aber über solch ein gut beschriebenes Beispiel (oder HowTo) sehr freuen.

Vielen Dank

Rene
 
hier sind nen paar gute, englische Tutorials:

http://lazyfoo.net/SDL_tutorials/index.php

Das Prinzip zum bewegen von Objekten ist, dass man den Hintergrund in einem Surface hat und dann den Hintergrund malt und danach dann immer wieder das sich bewegende Objekt, jeweils einen Pixel verschoben ;)

P.S.: Bevor du anfängst solltest du auf jeden Fall schonmal C/C++ können. Es ist (wahrscheinlich ^^) keine gute Idee gleich mit nen Spiel anzufangen...
 
Hallo,

der Link ist wirklich gut. C/C++ kann ich schon. Ich habe bis jetzt aber nur Konsolen-Programme geschrieben.

Ich würde gerne unter Linux programmieren, welche SDK sollte ich da nehmen. Oder was muß ich tun um mit meinen Slackware für den GP2x zu übersetzen.

Gruß

Rene
 
relei said:
Hallo,

der Link ist wirklich gut. C/C++ kann ich schon. Ich habe bis jetzt aber nur Konsolen-Programme geschrieben.

Ich würde gerne unter Linux programmieren, welche SDK sollte ich da nehmen. Oder was muß ich tun um mit meinen Slackware für den GP2x zu übersetzen.

Gruß

Rene

mh also ich code am liebsten mit nem 0815 Texteditor (vim & gedit) und benutz dann die Kommandozeile zum compilieren (machen übrigens viele Linux Entwickler ^^) an IDE empfehle ich ansonsten Anjuta für Gnome. Unter KDE kenn ich mich nicht so sehr aus, da ich es nur selten verwende ^^

Das Toolchain fürs Terminal brauchst du eh, da IDEs ja eigentlich immer nur die vorhandenen Kommandozeilenprogramme benutzen. Da würde ich mitlerweile das open2x toolchain nehmen.
 
Hallo, ich entwickle grade eine kleine engine unter anderem fuer die gp2x entwicklung in reinem c. ist alles noch sehr am anfang, aber ich denke man kann es schon fuer kleinere spiele verwenden und wird sich einiges tun die naechste zeit.

da wuerde das so aussehen (untested code, einfach aus dem gedaechtnis):
Code:
<i>
</i>SGESPRITE *rec1, *rec2, *peng;
SDL_Event event;
int quit=0;
int xpressed=0;
int collision=0;

// initialisieren
sgeInit(NOAUDIO,JOYSTICK);
sgeOpenScreen("lala",320,240,16,FULLSCREEN);

// daten laden
SGEFILE *tmp=sgeOpenFile("spritedata.d","asdf");
rec1=sgeSpriteNewFile(tmp, "bildrechteck1.png");
rec2=sgeSpriteNewFile(tmp, "bildrechteck2.png");
peng=sgeSpriteNewFile(tmp, "bildpeng.png");
sgeCloseFile(tmp);

// startpositionen festlegen
rec1->x=0;
rec2->x=300;
peng->x=100;

// gameloop bis quit>0
sgeGameLoop(event,quit) {
  switch (event.type) {
    case SDL_USEREVENT:
      if (event.user.code==SGEREDRAW) {
        // redraw noetig
        sgeClearScreen();
        if (xpressed && !collision) {
          rec1->x++;
          rec2->x--;
          if (sgeSpriteCollide(rec1, rec2)) collision=1;
        }
        sgeSpriteDraw(rec1, screen);
        sgeSpriteDraw(rec2, screen);
        if (collision) {
          sgeSpriteDraw(peng, screen);
        }
      }
    case SDL_JOYBUTTONDOWN:
    case SDL_JOYBUTTONUP:
      if (sgeKeyX(&event, PRESSED)) xpressed=1;
      if (sgeKeyX(&event, RELEASED)) xpressed=0;
      break;
    case SDL_QUIT:
      quit=1;
      break;
  }
}

sgeSpriteDestroy(rec1);
sgeSpriteDestroy(rec2);
sgeSpriteDestroy(peng);
sgeCloseScreen();

zum compilieren unter linux einfach
Code:
<i>
</i>./configure gp2x
make

setzt allerdings das original devkit von gamepark voraus. bei anderen muesst ich mal schaun ob das geht.

die lib findest du unter:

http://www.sf.net/projects/sge2d

einen cvs snapshot gibts auf der homepage, falls du mit cvs nix anfangen kannst.

leider ist alles noch recht schlecht ausdokumentiert, es gibt ein kleines tutorial und undokumentierte header files ;) aber ich stehe gern fuer jegliche fragen zur seite und vor allem ist das das erste mal, dass ich oeffentlich auf die lib hinweise, daher bin ich auch interessiert, wie kompliziert die library fuer entwickler ist, die sie nicht selber geschrieben haben, denn zentrale idee der library ist, die plattformuebergreifende spiele entwicklung in c moeglicht zu beschleunigen und zu vereinfachen
 
Hallo,

würde das devkit gehen: http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,14,1040

Gruß

Rene

PS: Danke für eure Antworten??
 
im moment wird es noch nicht unterstuetzt, aber ich habe das script gerade ueberflogen und so wie mir das aussieht heissen die befehle alle gleich zum offiziellen devkit, damit sollte eine simple pfadanpassung genuegen. da dieses wochenende xzentrix ist weiss ich noch nicht ob ich die naechsten tage dazu komme, aber ich werde das asap einbauen.
 
Hallo,

habe das eben übersehen, aber auf der Seite dev.gp2x.de ist glaube ich alles was ich für den Anfang brauche.

Gruß

Rene
 
relei said:
Hallo,

habe das eben übersehen, aber auf der Seite dev.gp2x.de ist glaube ich alles was ich für den Anfang brauche.

Gruß

Rene

:D die hab ich ja auch extra für Anfänger gemacht ^_^

@G.o.D.: mh ich code gerade nebenbei auch ne spiele engine ^_^ aber mit nem anderen Ziel: nem freien RPG Maker :) Mal sehen was draus wird... :D
 
relei said:
Hallo,

würde das devkit gehen: http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,14,1040

so, ist jetzt (endlich) eingebaut. Hier gibts den aktuellen CVS snapshot:

http://www.zefix.tv/sge2d/

@Elektranox - gibts da schon was zu sehen/testen (deine engine)?
 
G.o.D said:
relei said:
Hallo,

würde das devkit gehen: http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,14,1040

so, ist jetzt (endlich) eingebaut. Hier gibts den aktuellen CVS snapshot:

http://www.zefix.tv/sge2d/

@Elektranox - gibts da schon was zu sehen/testen (deine engine)?

naja ich war gerade bei der tile engine (war, da ich mein backup nicht finde <_< )
 
Das tutorial ist so geil sowas suche ich schon lang

Grusss nickik
 
Back
Top