2016-06-20 7 views
0

私は現在、少しゲームに取り組んでいます。私はこの前に2つのゲームを作ったので、あまりにも苦労しないと思っていました。私はプレーヤーのためのrenderメソッドを作っレンダリング方法が動作しない

だから、それは次のようになります。

public void render(Graphics g) { 
    switch(objState) { 
     case Static: 
      g.setColor(Color.black); 
      g.fillRect(50, 50, width, height); 
      //g.drawImage(staticimg, x, y, null); 
      break; 
     case WalkRight: 
      g.setColor(Color.white); 
      g.fillRect(x, y, width, height); 
      //g.drawImage(walkright, x, y, null); 
      break; 
     case WalkLeft: 
      g.setColor(Color.cyan); 
      g.fillRect(x, y, width, height); 
      //g.drawImage(walkleft, x, y, null); 
      break; 
     case Stop: 
      g.setColor(Color.green); 
      g.fillRect(x, y, width, height); 
      //g.drawImage(stop, x, y, null); 
      break; 
     default: 
      break; 
    } 
} 

しかし、プレイヤーがレンダリングされていない、私はそれが実際になってきたかどうかを確認するためにrenderメソッドの先頭にSYSOUTを追加しましたと呼ばれ、私はそれがわかった。

objStateはObjectState.Staticと等しいので、最初のケースを呼び出す必要があります。

このクラスとまったく同じGraphicsを使用したマップのレンダリングメソッドを作成しました。うまくいきましたので、Graphicsも問題ではないようです。最初のケースと同じことをするswitch文の外に少しだけコードを追加しようとしましたが、まだ何もレンダリングされていません。

+0

'Static'は文字列ですか? ObjectStateクラスのこのレンダリングメソッドですか? – johmsp

+0

@johmsp renderメソッドはPlayerというクラスにあり、staticはObjectStateのenumです – ItzBenteThePig

+0

これが呼び出されるときの幅と高さは何ですか? – Frecklefoot

答えて

1

Frecklefootと少し話した後、それが原因でプレイヤーがオーバーラップするため、見えませんでした。

関連する問題