Antwort schreiben  Thema schreiben 
Seiten (5): « Erste < Vorherige 1 2 3 4 [5] Letzte »
Verfasser Nachricht
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #61
RE: PSP C Anfang - Helft mir auf meinem weg

eben, soll ein text reader sein. wenn du 1/2 seiten vorher liest, siehste, dass ich einen eigenen kompilierbaren code hatte, nur die absätze gingen nicht. da hat hackman mir einen code gegeben, und ich versuchte ihn zu kompilieren, ohne ihn estmal ganz zu lesen und das ist dabei rausgekommen ^^ bin halt noch ein anfänger XD





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
09.11.2010 20:47
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Ceikor
Ex-Developer
****


Beiträge: 581
Gruppe: User
Registriert seit: Dec 2008

Status: Abwesend
Danke erhalten: 701
Beitrag: #62
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

Ja ok^^ hab auch schon den Fehler gefunden ging aber nicht. Kannst selber auch gerne versuchen setz den code von Hackman in der graphics.c über void initGraphics() am besten auch unter
void printTextScreen(int x, int y, const char* text, u32 color) dann wird es 100% gehenWink also das Compilieren der code nicht.

09.11.2010 20:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #63
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

So, habe die textreadersache erstmal seingelassen und versuche nun (einfach um zu gucken ob ichs hinbekomme) ein spiel, welches in PGE Lua ist, in C nachzucoden. das klappt bisher auch ganz gutm nur eine sache klappt nicht, und ich verstehe einfach nicht wiso. Also ich habe folgende Methode/Funktion

Code:
double analogausschlag(int x, int y){
    if ((x-127.5)&lt;0){x=(x-127.5)*(-1);}else{x=x-127.5;}
    if ((y-127.5)&lt;0){y=(y-127.5)*(-1);}else{y=y-127.5;}
    if (x&gt;y){return x;}else{return y;}
}

Dann wollte ich die funktion mit folgendem Code testen

Code:
        sprintf(text,"analogx: %i",pad.Lx);
        printTextScreen(11,30,text,rot);
        sprintf(text,"analogy: %i",pad.Ly);
        printTextScreen(11,40,text,rot);
        sprintf(text,"analogausschlag: %d",analogausschlag(pad.Lx,pad.Ly));
        printTextScreen(11,50,text,rot);

Die beiden ersten zeilen werden dabei absolut korrekt angezeigt (jeweils von 0-255), doch in der dritten zeile steht IMMER 0!. habe sogar mal einfach nur folgende funktion versucht (dann natürlich nur mit pad.Ly):

Code:
double analogausschlag(int y){
    return y;
}

Und auch diese Funktion liefert immer 0, und dass obwohl die Analogstick koordinaten darüber korrekt angezeigt werden. Könnt ihr mir erklären wiso?





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
22.11.2010 20:14
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #64
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

Versuchs mal ganz einfach:

PHP-Code:
int analogausschlag(int xint y)
{
    if((
-127.5) < 0)
        
= (127.5) * (-1);
    else
        
-= 127.5;

    if((
y-127.5) < 0)
        
= (127.5) * (-1);
    else
        
-= 127.5;
    
    return (
y) ? y;
};

// BLAAAAAAAAAAAAAAAAAAAAAa

pspDebugScreenInit();

SceCtrlData pad;
memset(&amp;pad0sizeof(SceCtrlData));

while(
pad.Buttons != PSP_CTRL_BLAAAA)
{
    
sceCtrlReadBufferPositive(&amp;pad1);

    
pspDebugScreenPrintf("lx: %d\nly: %d\nanalogaustausch: %d"pad.Lxpad.Lyanalogaustausch(pad.Lxpad.Ly);
    
pspDebugScreenSetXY(00);
}; 



//EDIT: Warum gibts du auch einen double anstatt einen Integer Wert zurück !?

Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2010 20:36 von HacKmaN.

22.11.2010 20:30
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Neutrosider (Nov-22-2010)
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #65
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

Ok, ich versuchs mal.
was genau macht diese zeile (sie kommt in meinem code nicht vor):

Code:
memset(&amp;pad, 0, sizeof(SceCtrlData));

und wozu diese zeile:

Code:
pspDebugScreenSetXY(0, 0);


EDIT: ich wollte es als double zurückgeben, da es sich beim rückgabewert nicht um eine ganze zahl handelt





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)

Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2010 20:50 von Neutrosider.

22.11.2010 20:49
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #66
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

Neutrosider :
Ok, ich versuchs mal.
was genau macht diese zeile (sie kommt in meinem code nicht vor):

Code:
memset(&amp;pad, 0, sizeof(SceCtrlData));

und wozu diese zeile:

Code:
pspDebugScreenSetXY(0, 0);


EDIT: ich wollte es als double zurückgeben, da es sich beim rückgabewert nicht um eine ganze zahl handelt


Oh, sry dass mit der ganzen Zahl hab ich nicht gesehen.
Dass memset überschreibt n bytes von der Adresse im ersten Argument mit dem 32-Bit Wert im 2. Argument. Es überschreibt also im Code oben die pad Struktur mit Null (für den Fall dass zufällig irgendein scheiß in der struktur steht).
Die Zeile pspDebugScreenSetXY setzt, wie der Name schon sagt die x und y Koordinate des DebugScreens. Ansonsten würden dauernd neue Zeilen erstellt werden, wie es in Terminalen der Fall ist.

22.11.2010 21:11
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Neutrosider (Nov-22-2010)
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #67
RE: PSP C Anfang - Helft mir auf meinem weg

ok, ich habe zuerst einfach deine version probiert->Klappt auf anhieb. dann wollte ich aber wissen woran genau es lag, dass es nicht funktioniert hat. das ergebnis:

wenn ich komplett meine version nehme und als rückgabetyp der funktion int setze, klappts, sprich es liegt nur am rückgabetyp, was finde ich sehr seltsam ist. Ich werde dennoch deine version nehemen, da es codemäßig einfach besser aussieht Smile

kannst du dir erklären warum es nur am rückgabetyp liegt und warum double nicht geht??





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
22.11.2010 21:19
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #68
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

Neutrosider :
ok, ich habe zuerst einfach deine version probiert->Klappt auf anhieb. dann wollte ich aber wissen woran genau es lag, dass es nicht funktioniert hat. das ergebnis:

wenn ich komplett meine version nehme und als rückgabetyp der funktion int setze, klappts, sprich es liegt nur am rückgabetyp, was finde ich sehr seltsam ist. Ich werde dennoch deine version nehemen, da es codemäßig einfach besser aussieht Smile

kannst du dir erklären warum es nur am rückgabetyp liegt und warum double nicht geht??


Vllt funktioniert die implizite dateiumwandlung nicht richtig. Versuchs mal mit

Code:
return (double)blaaa;


Ansonsten kannst du es ja mal mit nem float versuchen, dass ist wenigstens genauso groß wie ein Integer.

22.11.2010 21:35
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #69
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

gut ich versuchs. dann zu meiner nächsten nicht funktionierenden funktion. die soll aus einem x und einem y wert einen winkel machen und sieht so aus:

Code:
int analogangle(int x, int y){
    return sinh((y-127.5)/analogausschlag(x,y));
}


doch sie liefert leider immer nur 3 werte:

  • analogstick im oberen bereich -> -1
  • analogstik im mittleren bereich -> 0
  • analogstick im unteren bereich -> 1
wiso?

Ons mit der tpyenumwandlung klappt sag ich dir gleich.





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
22.11.2010 21:38
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #70
xPSP  RE: PSP C Anfang - Helft mir auf meinem weg

Neutrosider :
gut ich versuchs. dann zu meiner nächsten nicht funktionierenden funktion. die soll aus einem x und einem y wert einen winkel machen und sieht so aus:

Code:
int analogangle(int x, int y){
    return sinh((y-127.5)/analogausschlag(x,y));
}


doch sie liefert leider immer nur 3 werte:

  • analogstick im oberen bereich -> -1
  • analogstik im mittleren bereich -> 0
  • analogstick im unteren bereich -> 1
wiso?

Ons mit der tpyenumwandlung klappt sag ich dir gleich.


Da kann ich dir leider nicht helfen, mit Sachen wie Winkelfunktionen kenn ich mich überhaupt nicht aus Sad

22.11.2010 21:40
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #71
RE: PSP C Anfang - Helft mir auf meinem weg

ok, float klappt, aber schinbar liefert die funktion doch nur ganze werte, daher bleibe ich zumindest bei dieser funktion bei int.

gut, dann versuche ich das winkelproblem selbst zu lösen (mathe war schon immer meine stärke ^^), ich gebe bescheid wenns geklappt hat (und wie^^)





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
22.11.2010 21:47
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
pspbricker
Mod a.D.
*


Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 1641
Beitrag: #72
RE: PSP C Anfang - Helft mir auf meinem weg

Wieso soviele Gedanken wenn es auch einfacher geht ? Big Grin

Code:
float pgeControlsAnalogAngle(void)
{
    if(!enabled)
        return 0;
        
    float x = (float)128.0f - (pad.analog.x + 128.0f);
    
    if(x == 0.0f)
        x = 1.0f;
    
    float y = (float)128.0f - (pad.analog.y + 128.0f);
    
    if(y == 0.0f)
        y = 1.0f;
        
    float theta = 0.0f;
    
    if(y &gt;= 0.0f &amp;&amp; x &gt; 0.0f)
        theta = pgeMathAtan(y/x);
    else if(y &gt;= 0.0f &amp;&amp; x &lt; 0.0f)
        theta = -pgeMathAtan(y/-x)-PGE_CONTROLS_PI;
    else if(y &lt;= 0.0f &amp;&amp; x &gt; 0.0f)
        theta = -pgeMathAtan(-y/x);
    else if(y &lt;= 0.0f &amp;&amp; x &lt; 0.0f)
        theta = pgeMathAtan(-y/-x)-PGE_CONTROLS_PI;
        
    theta -= (PGE_CONTROLS_PI * 0.5f);
    
    theta += 2 * PGE_CONTROLS_PI;
    
    return theta;
}

aus: http://svn.luaplayer.org/pge/pgeControls.c

Musst nur noch die Variablen Namen anpassen .

Zitat:

Code:
pspDebugScreenPrintf("lx: %d\nly: %d\nanalogaustausch: %d", pad.Lx, pad.Ly, analogaustausch(pad.Lx, pad.Ly);

Es ist klar, dass nur eine Ganze Zahl zurück kommt. Da man mit %d die Ints ausgibt. Mit %f dagegen die Fließkomma Zhalen (Float, double).

Link http://tutorials.at/c/03-dateneingabe-ausgabe.html




Meine PS3 Games : Warhawk , NFS: Pro Street, Motorstorm ,Midnight Club LA, LittleBigPlanet, GTA4, Uncharted 2, Overlord, Killzone2, PES10, Battlefield ´43, Socom: Confrontation,


Forum Regeln Beachten! KEIN ISO Talk! KEINE Beleidigungen! KEINE illegalen Links!


Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2010 21:53 von pspbricker.

22.11.2010 21:50
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Neutrosider (Nov-22-2010)
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #73
RE: PSP C Anfang - Helft mir auf meinem weg

hatte die floats mit %f ausgegeben, gab dennoch nur ganze zahlen (nur halt mit .0000 dran.) und die sache mit dem pge source: GEIL! das hätte ich viel früher schon gebrauche können, DANKE!





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)

Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2010 21:58 von Neutrosider.

22.11.2010 21:57
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
anmabagima
Ex-Developer
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 530
Beitrag: #74
RE: PSP C Anfang - Helft mir auf meinem weg

Nur eine kleine Randbemerkung:
auf der PSP bitte immer nur floats (single precision) verwenden. double (also double precision float) ist als internen Datentyp auf der PSP nicht unterstützt. Da generiert der Compiler dann pseudo-code um das irgendwie zu handeln --> LANGSAM! Also immer float's... auf der PSP Big Grin

23.11.2010 09:12
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
pspbricker (Nov-23-2010)
Seiten (5): « Erste < Vorherige 1 2 3 4 [5] Letzte »
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP C und C++ lernen (Anfang) PSP-Kenner 19 7.134 18.04.2011 20:37
Letzter Beitrag: onecra
xPSP C++ Anfang MyKey 9 2.432 16.09.2010 10:03
Letzter Beitrag: MyKey
xPSP Lua Hello am anfang gleich erstes problem? homer 3 1.562 11.11.2009 14:28
Letzter Beitrag: philix

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang