編集:より具体的なコードを提供するために編集しました
ご覧のとおり、私のスプライトの描画はこの規則に違反しています。
誰かが以下の私のコードに基づいて疑似コードを使用して説明できれば、本当に感謝しています(これは、このルールの説明をたくさん読んだためですが、なぜそれが問題なのか、どうすればよいのかまだよくわかりませんこのルールを破らずに行う必要があります :-( )
1)これが私のコードで問題を引き起こすのはなぜですか?
&
2)私がやろうとしていることを行う別の方法を説明してください (リソースをロードしてスプライト オブジェクトを作成するための別のリソース クラスを保持しながら)。
2 つ以上のクラス オブジェクトを介してオブジェクトにアクセスすることに問題はありますか。いくつかのコードで説明します:
ここに 3 つのクラスがあります。以下の 3 番目のクラスのように、別のオブジェクトを介して class2 からメソッドにアクセスすることに何か問題がありますか?.......:
コード
マイ リソース クラス
//Resource class
public Class Resource(){
Bitmap myTexture;
Quad mySprite;
public void LoadResources(){
//Load graphics
myTexture = BitmapFactory.decodeResource(view.getResources(), R.drawable.myBitmap);
//Create my objects
mySprite = new Quad(); //Create new Quad object
mySprite.setTexture(myTexture); //Set texture to this quad
mySprite.setSize(100,100); //Set size of this quad
}
}
私のクワッドクラス
public class Quad(){
//This custom class has the bulk of the code to create all of the Quads / Sprites
public void setTexture(Bitmap textre){
//etc.....
}
//etc....
}
public void draw(int x, int y){
//Draw code here
}
そして最後に、メインの GLRenderer クラス:
public class MyGLRenderer implements GLSurfaceView.Renderer{
Resource res;
public MyGLRenderer(){
res = new Resources(); //Create object to my resources
}
public voide onDrawFrame(){
//Here is my main loop and I need to draw my sprites here, so........
res.mySprite.draw(x, y); //Draw my sprite
}