2014-07-21 70 views
-5

所以我有一段代碼應該改變遊戲對象的紋理,但不幸的是對我來說它不工作!紋理不變?

我的寶貝和積木不會改變他們應該的!

我認爲問題的一部分在於這些下面的代碼片段:

Game.java:

  if(red == 255 && green == 255 & blue == 255) handler.addObject(new Block(xx*32, yy*32, 0, ObjectId.Block)); 

      if(red == 128 && green == 128 & blue == 128) handler.addObject(new Block(xx*32, yy*32, 1, ObjectId.Block)); 

      if(red == 0 && green == 0 & blue == 255) handler.addObject(new Player(xx*32, yy*32, handler, ObjectId.Player)); 

      if(red == 255 && green == 255 & blue == 0) handler.addObject(new Treasure(xx*32, yy*32, 0, ObjectId.Treasure)); 

      if(red == 255 && green == 254 & blue == 0) handler.addObject(new Treasure(xx*32, yy*32, 1, ObjectId.Treasure)); 

塊:

public void render(Graphics g) 
{ 
    if(type == 0){//dirt 
     g.drawImage(tex.block[0], (int)x, (int)y, null); 
    } 
    if(type == 1){//grass 
     g.drawImage(tex.block[1], (int)x, (int)y, null); 
    } 
} 

寶:

public void render(Graphics g) { 
    if(i == 0) 
    { 

    g.drawImage(tex.treasure[0], (int)x, (int)y, null); 

    } 
    if(i == 1) 
    { 
     System.out.println("i = 1"); 
    g.drawImage(tex.treasure[1], (int)x, (int)y, null); 
    } 

} 

紋理:

public void render(Graphics g) { 
    if(i == 0) 
    { 

    g.drawImage(tex.treasure[0], (int)x, (int)y, null); 

    } 
    if(i == 1) 
    { 
     System.out.println("i = 1"); 
    g.drawImage(tex.treasure[1], (int)x, (int)y, null); 
    } 

} 

因此,這些是我認爲導致問題的代碼部分。此外,itype已在代碼中聲明,我只是沒有包含這些部分。

+0

什麼 '我' 和 '類型' 變量?我的猜測是問題出在這些值發生變化的代碼中,你可以發佈它嗎?只是一個瘋狂的猜測,但我認爲問題是他們的範圍,也許他們應該是渲染方法的參數 – jambriz

+0

if(red == 128 && green == 128&blue == 128)handler.addObject(new Block(xx * 32,yy * 32,1,ObjectId.Block));其順序代碼 – user3046310

+0

中的1/0,它與您的問題無關,但是您在同一個表達式中混合了shotcircuit(&&)和regular(&)AND。 if(red == 128 && green == 128&blue == 128) – jambriz

回答

0

我已經忘記了這一點:

type = type;