Avatar billede abh Nybegynder
24. februar 2007 - 23:06 Der er 1 kommentar

Line drawing for GBA

Hej er i gang med at skrive et simpelt "line drawing" program til GBA
jeg har et lille problem med at gemme x og y værdierne:

Jeg synes at jeg har prøvet allt men intet virker

///////////////////////////////////////////////////////
if(KEY_A_PRESSED){  //Plot Pixels
      if((line_x1==0)&&(line_y1==0)){
          line_x1 = x;
          line_y1 = y;
      }
      if((line_x1!=0)&&(line_y1!=0)){
            if((line_x2==0)&&(line_y2==0)){ //<<<<<<<<<< DAMN!!!
                line_x2 = x;
                line_y2 = y;
            }
        }
}
///////////////////////////////////////////////

dette er bare en af de forskellige metoder jeg har prøvet
problemet er at line_x1 and line_y1 bliver gemt no problem, men så er det med x2 og y2 at jeg ikke kan få.
Hvis jeg fjerner

if((line_x2==0)&&(line_y2==0))

fungerer det fint undtagen at jeg kan sætte værdien for xy2 flere gange hvilket jeg ikke ønsker.
de er alle "initialized" til 0 så jeg kan slet ikke se problemet
måske har jeg bare gloet på det for længe

håber nogen kan løse det her

på forhånd tak
ABH
Avatar billede faerch Nybegynder
26. februar 2007 - 16:15 #1
Nu kunne jeg godt tænke mig at vide hvad KEY_A_PRESSED er. (variabel/event?).
Er variablerne line_x1 osv. globale?

Hvis jeg forstår dig rigtigt vil du initialisere (x1,y1), når du trykker på tasten og (x2,y2) når du slipper. Er det rigtig forstået?

Hvis det skal virke sådan er du nød til at geninitialisere line_x1 og line_y1 til 0, inden næste acceptabel KEY_A_PRESSED.
Nu ved jeg ikke hvornår du skal bruge line_x1, men en mulighed kunne være at reinitialisere dem med en else...

if(KEY_A_PRESSED){
.....

}else{
  line_x1 = 0;
  line_y1 = 0;
}



En anden simpel mulighed kunne være....

if(KEY_A_PRESSED){
  if(First==0){
    line_x1 = x;
    line_y1 = y;
    First = 1;
  }
  line_x2 = x;
  line_y2 = y;
}else{
  First = 0;
}




Hvis x og y altid er større en 0, når de bliver tildelt vil følgende altid være opfyldt og dermed overflødig.
if((line_x1!=0)&&(line_y1!=0)){
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester