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
Administrator
Ach, wir reden hier von solch großen Lücken!
Ich ging davon aus, dass es nur um ein Pixel Breite/Höhe geht ...
Das ist in der Tat seltsam. Hast du die neuesten Grafiktreiber?
Bescheid!!!
Ich würde gerne die Klasse BlockSystem sowie die Berechnung für den Sprung sehen.
Das es was mit der GraKa zu tun hat bezweifel ich. Wir wollen aber nichts ausschließen.
Daher würde ich das ganze einmal Exportieren (Als .jar oder Repository oder wie auch immer)
und auf einem anderen Gerät einmal testen.
Optisch zu sehen sind nur die Lücken. Interessant wäre es ob es auch Überlappungen gibt.
Folgende Angaben würden helfen:
-Wie viele Pixel ist solch eine Lücke?
-Ist jede Kachel noch mit ihrem vollen Umfang zu sehen?
-- Wenn nein, wie groß ist die Überlappung?
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
if(speed>0){ boolean bewegt=false; int lastX=Jack.x;; for(int i=0;i<speed;i++){ if(bewegt==false){ Jack.bewegungsversuch(); if(lastX!=Jack.x){ bewegt=true; } else if(i+1==(int)speed&&bewegt==false&&gesprungen==true){ Jack.animiereBild(); } } if(Jack.amLeben==true&&Jack.entered==false){ if(Jack.y+100/100<0){ if(i==0&&speed<maxspeed){ speed+=0.6; } Jack.y+=1; scroll_Y-=1; } else if(bloecke[(Jack.y+200)/100][(Jack.x)/100].texture==null&&bloecke[(Jack.y+200)/100][(Jack.x+99)/100].texture==null){ if(i==0&&speed<maxspeed){ speed+=0.6; } Jack.y+=1; scroll_Y-=1; } else{ speed=1; gesprungen=false; } } } } else{ speed+=0.9; boolean bewegt=false; int lastX=Jack.x; for(int i=0;i<-speed;i++){ if(bewegt==false){ Jack.bewegungsversuch(); if(lastX!=Jack.x){ bewegt=true; } else if(i+1==(int)-speed&&bewegt==false&&gesprungen==true){ Jack.animiereBild(); } } if(Jack.amLeben==true&&Jack.entered==false){ if(Jack.y+100/100<0){ Jack.y-=1; scroll_Y+=1; } else if(bloecke[(Jack.y-1)/100][(Jack.x)/100].texture==null&&bloecke[(Jack.y-1)/100][(Jack.x+99)/100].texture==null){ Jack.y-=1; scroll_Y+=1; } else{ speed=1; } } } } |
Hmm...
Bin aktuell unterwegs und nur mim Handy Online.
Werde mir deinen Code später mal genauer ansehen.
Zwei Fragen habe ich aber noch:
Wie ich sehe arbeitest du mit Java.
1) Welche Java Version nutzt du?
2) Sagt dir das Framework JUnit was?
Hmm...
Bin aktuell unterwegs und nur mim Handy Online.
Werde mir deinen Code später mal genauer ansehen.
Zwei Fragen habe ich aber noch:
Wie ich sehe arbeitest du mit Java.
1) Welche Java Version nutzt du?
2) Sagt dir das Framework JUnit was?
JUnit ist ein Framework, mit dem einzelne Methoden auf ihre Tauglichkeit getestet werden können.
Habe mir den Code mal angesehen. Leider fehlt da noch eine ganze Menge an Infos um den Fehler finden zu können.
Es müsste noch folgendes bekannt sein:
- scroll_Y aus der BlockSystem Klasse und dessen Berechnung
- x in der Block Klasse wird deklariert aber nirgends Initialisiert. Da package private gilt wird dies wohl in einer anderen Klasse gemacht
- y in der Block Klasse wird deklariert aber nirgends Initialisiert. Da package private gilt wird dies wohl in einer anderen Klasse gemacht
- was macht die (wahrscheinlich) statische Methode bewegungsversuch() in der Klasse Jack
JUnit ist ein Framework, mit dem einzelne Methoden auf ihre Tauglichkeit getestet werden können.
Habe mir den Code mal angesehen. Leider fehlt da noch eine ganze Menge an Infos um den Fehler finden zu können.
Es müsste noch folgendes bekannt sein:
- scroll_Y aus der BlockSystem Klasse und dessen Berechnung
- x in der Block Klasse wird deklariert aber nirgends Initialisiert. Da package private gilt wird dies wohl in einer anderen Klasse gemacht
- y in der Block Klasse wird deklariert aber nirgends Initialisiert. Da package private gilt wird dies wohl in einer anderen Klasse gemacht
- was macht die (wahrscheinlich) statische Methode bewegungsversuch() in der Klasse Jack
Quellcode |
|
1 |
int scroll_Y; |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
if (TASTE_HOCH==true&&Jack.y>0&&Jack.amLeben==true&&Jack.entered==false){ if(bloecke[(Jack.y+199)/100][(Jack.x+101)/100].blockSort==14||bloecke[(Jack.y+199)/100][(Jack.x+101)/100].blockSort==1){ //Abfrage ob rechts neben Jack ein Block mit der blocksort 1 ist. if(bloecke[(Jack.y-5)/100][(Jack.x)/100].texture==null&&bloecke[(Jack.y-5)/100][(Jack.x+99)/100].texture==null){ //Abfrage ob über Jack ein Block ist wenn nicht dann klettert er. Jack.y-=20; scroll_Y+=20; Jack.klettert=true; if(Jack.aktBild<3&&Jack.nachRechts==true){ Jack.aktBild++; } else if(Jack.aktBild>1&&Jack.nachRechts==false){ Jack.aktBild--; } else { if(Jack.nachRechts==true){ Jack.nachRechts=false; } else { Jack.nachRechts=true; } } } } |
Zitat
else if(bloecke[(Jack.y+199)/100][(Jack.x-1)/100].blockSort==13||bloecke[(Jack.y+199)/100][(Jack.x-1)/100].blockSort==1){ //Abfrage ob links neben Jack ein Block mit der blocksort 1 ist.
if(bloecke[(Jack.y-5)/100][(Jack.x)/100].texture==null&&bloecke[(Jack.y-5)/100][(Jack.x+99)/100].texture==null){ //Abfrage ob über Jack ein Block ist wenn nicht dann klettert er.
Jack.y-=20;
scroll_Y+=20;
Jack.klettert=true;
if(Jack.aktBild<3&&Jack.nachRechts==true){
Jack.aktBild++;
}
else if(Jack.aktBild>1&&Jack.nachRechts==false){
Jack.aktBild--;
}
else {
if(Jack.nachRechts==true){
Jack.nachRechts=false;
}
else {
Jack.nachRechts=true;
}
}
}
}
Quellcode |
|
1 |
int x,y; |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
public void bewegungsversuch(){ if(blockSys.TASTE_LINKS==true&&amLeben==true&&blockSys.TASTE_SHIFT==false){ rechts=false; if(y<0){ blockSys.scroll_X+=5; x-=5; animiereBild(); } else if(blockSys.bloecke[(y+1)/100][(x-1)/100].texture==null&&blockSys.bloecke[(y+99)/100][(x-1)/100].texture==null&&blockSys.bloecke[(y+199)/100][(x-1)/100].texture==null){ blockSys.scroll_X+=5; x-=5; animiereBild(); } } else if(blockSys.TASTE_LINKS==true&&amLeben==true&&blockSys.TASTE_SHIFT==true){ rechts=false; if(y<0){ blockSys.scroll_X+=10; x-=10; animiereBild(); } else if(blockSys.bloecke[(y+1)/100][(x-10)/100].texture==null&&blockSys.bloecke[(y+99)/100][(x-10)/100].texture==null&&blockSys.bloecke[(y+199)/100][(x-10)/100].texture==null){ blockSys.scroll_X+=10; x-=10; animiereBild(); } else{ x=blockSys.bloecke[y/100][(x-10)/100].x+100; } } else if(blockSys.TASTE_RECHTS==true&&amLeben==true&&blockSys.TASTE_SHIFT==false){ rechts=true; if(y<0){ blockSys.scroll_X-=5; x+=5; animiereBild(); } else if(y<100&&blockSys.bloecke[(y+199)/100][(x+100)/100].texture==null){ blockSys.scroll_X-=5; x+=5; //Die Abfrage kannst du löschen wenn du die Level so baust das der Spieler nicht nach oben raus kann animiereBild(); } else if(blockSys.bloecke[(y+1)/100][(x+99)/100].texture==null&&blockSys.bloecke[(y+99)/100][(x+100)/100].texture==null&&blockSys.bloecke[(y+199)/100][(x+100)/100].texture==null){ blockSys.scroll_X-=5; x+=5; animiereBild(); } } else if(blockSys.TASTE_RECHTS==true&&amLeben==true&&blockSys.TASTE_SHIFT==true){ rechts=true; if(y<0){ blockSys.scroll_X-=10; x+=10; animiereBild(); } else if(y<100&&blockSys.bloecke[(y+199)/100][(x+100)/100].texture==null){ blockSys.scroll_X-=10; x+=10; //Die Abfrage kannst du löschen wenn du die Level so baust das der Spieler nicht nach oben raus kann animiereBild(); } else if(blockSys.bloecke[(y+1)/100][(x+110)/100].texture==null&&blockSys.bloecke[(y+99)/100][(x+110)/100].texture==null&&blockSys.bloecke[(y+199)/100][(x+110)/100].texture==null){ blockSys.scroll_X-=10; x+=10; animiereBild(); } else{ x=blockSys.bloecke[y/100][(x+110)/100].x-100; } } else if(klettert==false){ aktBild=1; } } |
Werbeanzeige