KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: Hilfe mit Psp-Programming Tuts
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi.
Ich habe ein kleines problem mit dem Bilder einfügen bei der psp ?

Zitat:
#include #include #include #include #include #include #include
#include "graphics.h"


#define printf pspDebugScreenPrintf
#define MAX( X , Y ) ( (X) > (Y) ? (X) : (Y) )


PSP_MODULE_INFO( " Bild Programm " , 0 , 1, 1 );


int exit_callback( int arg1 , int arg2 , void *common)
{
sceKernelExitGame();
return 0;
}


int CallbackThread( SceSize args , void *argp)
{

int cbid;

cbid = sceKernelCreateCallback( " Exit Callback " , exit_callback , NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}


int SetupCallbacks(void)
{
int thid=0;

thid = sceKernelCreateThread( " update_thread " , CallbackThread, 0x11 , 0xFA0 , 0 , 0 );
if( thid >= 0)
{
sceKernelStartThread(thid , 0 , 0 );
}

return thid;
}

int main() {
char buffer[200];
Image* ourImage;

pspDebugScreenInit();
SetupCallbacks();
initGraphics();

sprintf(buffer, "ourImage.png");
ourImage = loadImage(buffer);

if(!ourImage) {
//laden des Bildes ist fehlgeschlagen
printf("laden des Bildes fehlgeschlagen!\n");
}else
{

int x = 0;
int y = 0;
sceDisplayWaitVblankStart();

while(x<480) {
while(y<272) {

blitAlphaImageToScreen(0 ,0 ,32 , 32, ourImage, x, y);
y += 32;
}

x += 32;
y = 0;
}

flipScreen();
}

sceKernelSleepThread();
return 0;
}


Wenn ich das nun kompiliere dann sieht man am bildschirm das Bild( dass im tut halt dabei war )

nun möchte ich aber dasss das bild nur einzeln geladen wird..
und wie kann ich es auf eine bestimmte stelle tun ( z.b rechts oben ..)

hab schon alles auspropbiert aber nix funktioniert irgendwie =)..

Was meinst du mit "dass das Bild nur einzeln geladen wird"?
Zum Bild an eine Bestimmte Stelle: die ersten 2 Parameter von blitAlphaImageToScreen sind die X und Y Koordinaten (denk ich auf jeden Fall... hab mich nie für Grafiken interessiert) Wink
Guten Abend,

vllt bringt dich das weiter.

http://www.pspking.de/forum/showthread.php?tid=18836

In dem Tut sind manche Befehle überflüssig, oder haben nicht so wirklich den Nutzen.

MfG ferra
...hat doch geklappt...thx
sry..bitte löschen..siehe oben
Aha, das bringt uns doh weiter.

Also hast du das selbe Problem wie ich damals.

Übernehme mal meinen Code und setz einfach nur dein Bild rein.
Dann passt das schon.

Das Problem liegt an dieser Stelle.

Code:
while(x&lt;480) {
                               while(y&lt;272) {
                                            blitAlphaImageToScreen(0 ,0 ,32 , 32, ourImage, x, y);
                                            y += 32;
                               }
                               x += 32;
                               y = 0;
                  }


Die Auswahl wird immer um jeweils 32 Pixel weitergegeben, wodurh dieser Effekt entsteht. Das ist aber nützlich, wenn man ein Texturbild hat, aufdem mehrere texturen oder Grafiken sind. So kann man Bildbereiche "ausschneiden" und dann darstellen.

Ist doch logisch, durch die Whiles wird die Grafik über den gesammten Bildschirm skaliert, mach einfach die Whiles weg und gib das Bild ganz normal mit blitAlphaImageToScreen() aus Wink
sry..is doch mit dem link von ferra gegangen...trotzdem danke an alle..

Tobs!as :
sry..is doch mit dem link von ferra gegangen...trotzdem danke an alle..


Soll ich dir auch noch erklären wo das Problem lag. Verstehen musst du es ja auch.

Code:
blitAlphaImageToScreen(0, 0, 480, 272, ourImage, x, y);

Das ist der Befehl zum wiedergeben.
Mit den ersten beiden Werten (0, 0) legst du die Punkte auf dem Bild fest, welcher später angezeigt werden soll.
Mit den zweiten Paar (480, 272) wo der Bildausschnitt enden soll.
Mit "ourImage" ist das Bild gemeint. Und die x und y sind die Koordinaten, wo das Bild auf der PSP ausgegeben wird.
Bei dir im Code haben die sich jeweils um 32 pixel verändert, wodurch diese Quadrate entstanden sind.

MfG ferra

thx ferra..das mit den x ,y koordinaten wusste ich noch ned..

Tobs!as :
thx ferra..das mit den x ,y koordinaten wusste ich noch ned..


Uiii, da merke ich, das mein alter Code sogar falsch ist. Es wird ja bei "0" mit zählen begonnen. Also müsste es eigentlich:

Code:
blitAlphaImageToScreen(0, 0, 479, 271, ourImage, x, y);

sein^^.
Naja, es lief...

Bei den ersten 4 Werten brauchst du einfach immer nur die Bildgröße in Pixeln von deiner darzustellenden Grafik einfügen. Ist eigentlich ganz leicht. Aber in dem Tutorial hat man das leider nicht mit erwähnt.

MfG ferra
Und weiterhin viel Glück beim lernen

Referenz-URLs