我正在使用一个与街机经典《太空侵略者》类似的方式运行Android应用程序,但我正在使用加速度计从左向右移动播放器。我在“ ElementInvadersView”类中使用了此方法,该方法允许用户通过触摸屏幕来移动播放器:
//Override onTouchListener method and detect screen touches
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
// Player has touched the screen
case MotionEvent.ACTION_DOWN:
paused = false;
if (motionEvent.getY()>screenSizeY-screenSizeY/8){
if (motionEvent.getX() > screenSizeX/2){
player.setPlayerMovement(player.RIGHT);
}
else{
player.setPlayerMovement(player.LEFT);
}
}
if(motionEvent.getY()<screenSizeY-screenSizeY/8){
//Shots Fired
if(playerProjectile.shoot(player.getX()+player.getLength()/2,screenSizeY,playerProjectile.UP)){
soundPool.play(shootID,1,1,0,0,1);
}
}
break;
// Player has removed finger from screen
case MotionEvent.ACTION_UP:
if(motionEvent.getY()>screenSizeY-screenSizeY/10){
player.setPlayerMovement(player.STOPPED);
}
break;
}
return true;
}
我```
在ElementInvadersMainActivity类中创建了SensorEvent,Sensor和SensorEventListener,但它似乎无法找到“ x”值,因此我不知道如何传递它。
这是我的MainActivity中与加速度计有关的代码:
```js
ElementInvadersView elementInvadersView;
SensorManager sensorManager;
Sensor accelerometer;
SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
x = event.values[0];
elementInvadersView.setX(x);
elementInvadersView.invalidate();
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
elementInvadersView = new ElementInvadersView(this, size.x, size.y);
setContentView(elementInvadersView);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
我是否将加速度计放在错误的位置?它是否应该进入我的PlayerObject类,该类绘制对撞机并更新播放器的状态?
任何帮助将不胜感激。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。