编辑:已编辑以提供更具体的代码
正如你所看到的,我的精灵图打破了这个规则。
如果有人可以根据我下面的代码通过伪代码的方式进行解释,我将不胜感激(这是因为我已经阅读了很多关于此规则的解释,但我仍然不明白为什么这是一个问题或如何做我需要在不违反此规则的情况下做:-()
1)为什么这会导致我的代码出现问题?
&
2)请解释做我正在尝试做的事情的另一种方法(同时保留一个单独的资源类,专门用于加载我的资源和创建我的精灵对象)。
通过 2 个或更多类对象访问对象有什么问题吗?我将通过一些代码进行解释:
这里我有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
}