C / Palib (NDS Programmierung) Problem ERLEDIGT
Übersicht

feuerball11Betreff: C / Palib (NDS Programmierung) Problem ERLEDIGT |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute.
hat sich erledigt Habe vor kurzem angefangen das Programmieren für den NDS zu lernen. Es klappt auch soweit alles, jetzt habe ich bloß ein Problem wo ich nicht weiß wo der Fehler liegt. Der Programmablauf sieht wie folgt aus (Code am Ende) -Start -Wenn Stylus aufkommt, Dort 4 "x" Zeichnen -Wenn A gedrückt wurde auf Stylus warten -An der stelle des Stylus 4 "o" Platzieren -Die 4 "o" Solange nach unten bewegen das sie auf die "X" Treffen. Wer die PAlib Befehle nicht kennt diese kurz erläutert: PA_Init() : PAlib "starten" PA_LoadDefaultText(screen,background) : Textsystem auf angegebenen Bildschrim (0 = Unten/ 1 = oben) laden PA_OutputText(screen,x*8,y*8,text) Text an Angegebene Stelle ausgeben (Angaben nicht in Pixel sondern in 8-Pixelschritten) Und die Variablen: Stylus.Held : Stylus Berührung mit Screen Stylus.X : Stylus X Potition Stylus.Y : Stylus Y Potition Pad.Newpress.A : Button A Gedrückt (ähnlich Keyhit) Jetzt Funktioniert das alles bloß nicht wie geplant.. Die "o" zerstückeln sich und bewegen sich nicht mehr.. Nun Simple Frage (Oder eben doch nicht ![]() Hoffe Jemand kann mir helfen. Gruß Feuerball11 Download als .nds (Für Emulator) Download Code: Code: [AUSKLAPPEN] #include <PA9.h>
int main() { PA_Init(); int bot[32][24]; int i; int j; int px; int py; int f=1; int botax; int botay; PA_LoadDefaultText(0,0); PA_LoadDefaultText(1,0); while(1) { if(Stylus.Held) { if(bot[Stylus.X/16*2][Stylus.Y/16*2]==0) { bot[Stylus.X/16*2][Stylus.Y/16*2]=1; bot[Stylus.X/16*2+1][Stylus.Y/16*2]=1; bot[Stylus.X/16*2][Stylus.Y/16*2+1]=1; bot[Stylus.X/16*2+1][Stylus.Y/16*2+1]=1; } } if(Pad.Newpress.A) { while(f==1) { PA_OutputText(1,1,1,"A Presed"); if(Stylus.Held) { if(bot[Stylus.X/16*2][Stylus.Y/16*2]==0) { bot[Stylus.X/16*2][Stylus.Y/16*2]=2; bot[Stylus.X/16*2+1][Stylus.Y/16*2]=3; bot[Stylus.X/16*2][Stylus.Y/16*2+1]=3; bot[Stylus.X/16*2+1][Stylus.Y/16*2+1]=2; px = Stylus.X; py = Stylus.Y; f=0; PA_OutputText(1,1,1," "); } } PA_WaitForVBL(); } } if (f==0) { botax = px/16*2; botay = py/16*2; if(bot[(px/16*2)][py/16*2+2] == 0) { py = py +1; } if (botay != py/16*2) { bot[botax][botay] = 0; bot[botax+1][botay] = 0; bot[px/16*2][py/16*2+2] = 2; bot[px/16*2+1][py/16*2+2] = 2; } PA_OutputText(1,1,1,"PX: %d PY: %d",px,py); } for (i=0;i<=31;i++) { for (j=0;j<=23;j++) { if(bot[i][j] == 1) PA_OutputText(0,i,j,"X"); if(bot[i][j] == 0) PA_OutputText(0,i,j," "); if(bot[i][j] == 2) PA_OutputText(0,i,j,"o"); if(bot[i][j] == 3) PA_OutputText(0,i,j,"o"); } } PA_WaitForVBL(); } return 0; } |
||
- Zuletzt bearbeitet von feuerball11 am Mi, Feb 23, 2011 6:33, insgesamt einmal bearbeitet
![]() |
gameworx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Code verstehe ich zwar leider nur Bahnhof, aber das Programm läuft auf meinem NDSlite (nicht Emu) wie beschrieben.
Bei Programmstart steht da schon ein "x" in der unteren rechten Ecke (ganz rechts am Rand, ich schätze 3. Zeile von unten). Ist das gewollt? Die vier "x" kann ich immer setzen und das funktioniert einwandfrei. Die "o" kommen nur 1x, nachdem ich die Taste "A" gedrückt habe und sind durch eine Leerzeile auseinandergerissen bzw. werden sofort durch "x" überschrieben, wenn ich Stylus auf Display lasse. BTW: es müsste "pressed" heissen. Kannst du es irgendwie machen, dass das Programm sich normal beenden lässt (z. B. durch Druck auf "start")? Dann brauche ich nicht für jeden Test booten. ![]() |
||
AMD Athlon II X3 440 (3 GHz), 4GB Ram, ATI Radeon HD 5450, Win 7 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tja, gameworx, Du hast wohl das klitzekleine "hat sich erledigt" was sich mitten im Posting versteckt überlesen.
Feuerball, Wenn sich ein Problem erledigt hat, solltest Du das im Threadtitel und fett im Posting einfügen. Sonst werden sich Leute ärgern weil sie halfen wo es nix mehr zu helfen gab. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group