Привет, вы можете сделать что-то вроде этого:
// TASK
public class SomeClass extends AsyncTask<Void, Void, String>>
{
private OnTaskExecutionFinished _task_finished_event;
public interface OnTaskExecutionFinished
{
public void OnTaskFihishedEvent(String Reslut);
}
public void setOnTaskFinishedEvent(OnTaskExecutionFinished _event)
{
if(_event != null)
{
this._task_finished_event = _event;
}
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected String doInBackground(Void... params)
{
// do your background task here ...
return "Done!";
}
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
if(this._task_finished_event != null)
{
this._task_finished_event.OnTaskFihishedEvent(result);
}
else
{
Log.d("SomeClass", "task_finished even is null");
}
}
}
// MAIN ACTIVITY
public class MyActivity extends ListActivity
{
...
SomeClass _some_class = new SomeClass();
_someclass.setOnTaskFinishedEvent(new _some_class.OnTaskExecutionFinished()
{
@Override
public void OnTaskFihishedEvent(String result)
{
Toast.makeText(getApplicationContext(),
"Phony thread finished: " + result,
Toast.LENGTH_SHORT).show();
}
});
_some_class.execute();
...
}
Я использую pygame сам, и это очень хорошо. Это имеет хорошую документацию и учебные руководства, и вполне хорошо разработано. Я также услышал замечательные обзоры поросенок .
Я использовал и настоятельно рекомендовал бы поросенок , который обеспечивает 2D графику спрайта, рычаги в эффекты OpenGL, аудио поддержку, управление активами файла, и превосходное текстовое расположение и поддержку дисплея (не что-то, что Вы всегда находите в 2D игровой библиотеке). API нормален, хорошо зарегистрирован, и легок начать с и идет глубоко (особенно, если Вы - мастер OpenGL).
Как компаньон поросенку, я использовал и также предложил бы Cocos2D, который добавляет управление сценой, улучшенные спрайты, размещенную рядом поддержку карты, и воображение (ускорило) эффекты добавить немного полировки. Cocos все еще молод, но формирующийся быстро и уже имеет довольно основательную документацию.
сообщение в блоге А, покрывающее несколько из альтернатив , включая PyGame, PyCap, SpriteCraft, и ika. Я также видел поросенок упомянутый.
можно также хотеть посмотреть Panda, который является очень простым в использовании 3D механизмом с привязкой Python. Это используется для быстрого прототипирования в ETC Carnegie Mellon.
Я думаю, что pygame является стандартом для разработки игр в Python, я не знаю ни о каких других. Книга, которой можно интересоваться, Игровое Программирование с Python, Lua и Ruby. Мало того, что это покрывает Python (и, я верю, pygame модуль), но он также дает Вам воздействие Lua и Ruby. Это также доступно на books24x7, если у Вас есть подписка там.
Другая опция pycap, который является оберткой для popcap платформы с Python.
Я только услышал, что люди говорят о pygame. Это имеет тонны подписчиков & много функциональности.
Недавно я видел эта книга в barnes & благородный, который я мог бы проверить один день. Это выглядело хорошим.
Если Вы уже знакомы с использованием OpenGL на другом языке (вероятно, C или C++) затем , PyOpenGL является потрясающим. Я был удивлен относительно того, как легкий это должно было переключиться от OpenGL/C до OpenGL/Python. Производительность не является половиной плохо также.
я услышал хорошие вещи о PyGame и Pyglet, хотя я должен признать, что действительно не сделал многого бездельничающего ни с одним.
Последующий вопрос:
я не могу только кодировать простую 2D игру в некотором существующем графическом инструментарии / инструментарии работы с окнами как превосходный wxPython?
я извлеку выгоду из готовых виджетов GUI, которые могут перенести графику в мою игру, в то время как с pyGame я должен разработать их сам.