Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 调用batch.dispose()会在尝试切换屏幕时发出致命信号11(SIGSEGV)_Android_Libgdx_Segmentation Fault - Fatal编程技术网

Android 调用batch.dispose()会在尝试切换屏幕时发出致命信号11(SIGSEGV)

Android 调用batch.dispose()会在尝试切换屏幕时发出致命信号11(SIGSEGV),android,libgdx,segmentation-fault,Android,Libgdx,Segmentation Fault,公共类毕加索扩展游戏{ 公共静态最终字符串TAG=“debug”; 私有纹理黑条; 私人纹理黑玩家,红玩家,绿玩家,红吧,绿吧; 私人声音; 私人音乐; 公共SpriteBatch批次; 私人正交摄影机; 私有矩形桶; 私有数组blackPlayerList、greenPlayerList、redPlayerList; 私人长时间lastBlackTime、lastRedTime、lastGreenTime; 专用布尔值为黑色、isRed、isGreen; @凌驾 公共void create()

公共类毕加索扩展游戏{
公共静态最终字符串TAG=“debug”;
私有纹理黑条;
私人纹理黑玩家,红玩家,绿玩家,红吧,绿吧;
私人声音;
私人音乐;
公共SpriteBatch批次;
私人正交摄影机;
私有矩形桶;
私有数组blackPlayerList、greenPlayerList、redPlayerList;
私人长时间lastBlackTime、lastRedTime、lastGreenTime;
专用布尔值为黑色、isRed、isGreen;
@凌驾
公共void create(){
Gdx.app.setLogLevel(Application.LOG\u DEBUG);
//加载液滴和铲斗的图像,每个图像为64x64像素
批次=新的SpriteBatch();
isBlack=true;
绿色=假;
isRed=假;
blackBar=新纹理(Gdx.files.internal(“bar.png”);
blackPlayer=新纹理(Gdx.files.internal(“player.png”);
redBar=新纹理(Gdx.files.internal(“redBar.png”);
greenBar=新纹理(Gdx.files.internal(“greenBar.png”);
greenPlayer=新纹理(Gdx.files.internal(“greenPlayer.png”);
redPlayer=新纹理(Gdx.files.internal(“redPlayer.png”);
//创建相机和SpriteBatch
摄影机=新的正交摄影机();
setToOrTo(false,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
//创建一个矩形以逻辑方式表示存储桶
bucket=新矩形();
bucket.x=Gdx.graphics.getWidth()/2-64/2;//将bucket水平居中
bucket.y=20;//bucket的左下角比屏幕底部边缘高20像素
桶宽=6;
铲斗高度=6;
//创建blackPlayerList数组并生成第一个条
blackPlayerList=新数组();
redPlayerList=新数组();
greenPlayerList=新数组();
产卵条(0);
产卵红(150);
绿色(300);
}
专用空格键(整数间距){
矩形条=新矩形();
bar.x=MathUtils.random(0,Gdx.graphics.getWidth()-400);
bar.y=Gdx.graphics.getHeight()+间隙;
条宽=64;
bar.height=64;
blackPlayerList.add(条);
lastBlackTime=TimeUtils.millis();
}
专用空格绿色(整数间隔){
矩形条=新矩形();
bar.x=MathUtils.random(0,Gdx.graphics.getWidth()-400);
bar.y=Gdx.graphics.getHeight()+间隙;
条宽=64;
bar.height=64;
greenPlayerList.add(条);
lastGreenTime=TimeUtils.millis();
}
私有空间生成红色(整数间隔){
矩形条=新矩形();
bar.x=MathUtils.random(0,Gdx.graphics.getWidth()-400);
bar.y=Gdx.graphics.getHeight()+间隙;
条宽=64;
bar.height=64;
redPlayerList.add(条);
lastRedTime=TimeUtils.millis();
}
@凌驾
公共无效呈现(){
Gdx.gl.glClearColor(1,1,1,1);
Gdx.gl.glClear(GL20.gl\u颜色\u缓冲\u位);
super.render();
处置();
设置屏幕(新GameOver(Picasso.this));
camera.update();
batch.setProjectionMatrix(camera.combined);
setInputProcessor(新的InputAdapter(){
@凌驾
公共布尔接地(整数屏幕X、整数屏幕Y、整数指针、整数按钮){
如果(黑色){
isRed=真;
isBlack=false;
绿色=假;
}否则,如果(isRed){
绿色=真;
isRed=假;
isBlack=false;
}否则{
isBlack=true;
isRed=假;
绿色=假;
}
返回超级触地(屏幕X、屏幕Y、指针、按钮);
}
});
//开始一个新的批次,并绘制铲斗和
//所有滴
batch.begin();
批量抽取(blackPlayer,bucket.x,bucket.y,50,50);
用于(矩形条:blackPlayerList){
批量绘制(黑条、条形图x、条形图y、400500);
}
用于(矩形条:redPlayerList){
批次图(红色条、条形图x、条形图y、400500);
}
用于(矩形条:绿色玩家列表){
批次图(绿条、条x、条y、400500);
}
如果(黑色){
批量抽取(blackPlayer,bucket.x,bucket.y,50,50);
}否则如果(绿色){
批量抽取(greenPlayer,bucket.x,bucket.y,50,50);
}否则{
批量抽取(红牌玩家,bucket.x,bucket.y,50,50);
}
batch.end();
如果(Gdx.input.isKeyPressed(Keys.LEFT))bucket.x-=200*Gdx.graphics.getDeltaTime();
如果(Gdx.input.isKeyPressed(Keys.RIGHT))bucket.x+=200*Gdx.graphics.getDeltaTime();
//确保铲斗保持在屏幕范围内
//如果(bucket.x<0)bucket.x=0;
//如果(bucket.x>800-64)bucket.x=800-64;
int rand1=数学随机(1,3);
int rand2=数学随机(1,3);
int rand3=数学随机(1,3);
//检查是否需要创建一个新的酒吧
if(rand1==1){
如果(TimeUtils.millis()-lastBlackTime>2500)生成条(0);
如果(TimeUtils.millis()-lastRedTime>2500)生成红色(150);
如果(TimeUtils.millis()-lastGreenTime>2500)为绿色(300);
}else if(rand1==2){
如果(TimeUtils.millis()-lastGreenTime>2500)为绿色(0);
如果(TimeUtils.millis()-lastRedTime>2500)生成红色(150);
如果(TimeUtils.millis()-lastBlackTime>2500)生成条(300);
}否则{
如果(TimeUtils.millis()-lastBlackTime>2500)生成条(0);
如果(TimeUtils.millis()-lastGreenTime>2500)为绿色(150);
如果(TimeUtils.millis()-lastRedTime>2500)生成红色(300);
}
if(rand2==1){
如果(TimeUtils.millis()-lastBlackTime>2500)生成条(0);
如果(TimeUtils.millis()-lastGreenTime>2500)为绿色(150);
如果(TimeUtils.millis()-lastRedTime>2500)生成红色(300);
}else if(rand2==2){
如果(TimeUtils.millis()-lastBlackTime>2500)生成条(0);
如果(TimeUtils.millis()-lastGreenTime>2500)为绿色(150);
如果(TimeUtils.millis()-lastRedTime>2500)生成红色(300);
}否则{
如果(TimeUtils.millis()-lastBlackTime>2500)生成条(0);
如果(TimeUtils.millis()-lastRedTime>2500)生成红色(150);
如果(TimeUtils.millis()-lastGreenTime>2500)为绿色(300);
}
如果(rand3==1){
如果(TimeUtils.millis()-lastGreenTime>2500)为绿色(0);
如果(TimeUtils.millis()-lastBlackTime>2500)生成条(150);
如果(TimeUtils.millis()-lastRedTime>2500)生成红色(300);
}else if(rand3==2){
if(TimeUtils.millis()