Как использовать активность в cocos2d-android?
В настоящее время я работаю над проектом cocos2d-android, в котором взаимодействие между спрайтом выполняется с использованием "сцен", не использующих XML-файлы, поэтому теперь для выполнения некоторых других задач я использую XML-файлы макета в onTouch кнопки. ниже приведен код для замены сцены на onTouch кнопки, так как сцена не была использована, какую логику я должен использовать здесь? Я много искал, не мог найти решение. Помогите мне, пожалуйста.
public void callbackGameLayer(Object sender) {
//Global.playSoundEffect(R.raw.button);
CCScene scene = CCScene.node();
scene.addChild(new GameLayer(), -1);
CCDirector.sharedDirector().replaceScene(scene);
}
это деятельность, к которой должен идти поток
public class IntermediateMain extends Activity {
protected CCGLSurfaceView mGlSurfaceView;
private static int MAX_GAME_TIME_SECONDS = 300;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// get full screen setup and keep screen bright and on when the window
// is visible
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
mGlSurfaceView = new CCGLSurfaceView(this);
setContentView(R.layout.main);
final Button newGame = (Button) findViewById(R.id.start_game_btn);
final TextView numSecondsTextView = (TextView) findViewById(R.id.num_seconds_text_view);
final TextView numSacksTextView = (TextView) findViewById(R.id.num_sacks_text_view);
OnSeekBarChangeListener changeListener = new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
int currentGameTimeInSeconds = (progress * MAX_GAME_TIME_SECONDS) / 100;
numSecondsTextView.setText(Integer
.toString(currentGameTimeInSeconds));
numSacksTextView.setText(Integer.toString(IntermediateGameLayer
.numSacksInGame(currentGameTimeInSeconds)));
newGame.setEnabled(currentGameTimeInSeconds > 0);
}
};
2 ответа
Чтобы переключиться на другое действие в Android, вам нужно отправить вызов с cocos2d-x (C++) на текущее действие Android с помощью кода JNI. А затем начните новую деятельность там. Игра cocos2d-x остановится, когда вы переключитесь на другое занятие.
Я думаю, что вы пошли в неверном направлении, потому что у меня такое же намерение, как и раньше, но после ряда исследований я обнаружил, что: API-интерфейс cocos2d-x для Android - это всего лишь оболочка для правильной работы на устройстве Android. Основным языком разработки по-прежнему является C++ для переносимости. Вот пример из Space Game, поддерживающий мою мысль.