Android: como tornar os arquivos de ativos de jogo legíveis do código C ++ usando NDK

StackOverflow https://stackoverflow.com/questions/2278359

  •  21-09-2019
  •  | 
  •  

Pergunta

Estou criando um jogo usando a porta de mecanismo gráfica Irrlicht C ++ 3D para a plataforma Android. O mecanismo gráfico está escrito em C ++. Eu preciso ser capaz de carregar malhas e texturas etc a partir do código C ++. Meu plano atual é colocar todos os arquivos de ativos do jogo no diretório RES/RAW ou no diretório de ativos e, em seguida, copiar esses arquivos para o SDCARD para que sejam acessíveis a partir do código Irrlicht C ++. Essa é a melhor maneira de tornar os arquivos de mídia do jogo acessíveis a partir do C ++?

Foi útil?

Solução

Existem várias maneiras de fazer isso ... cada uma delas tem suas próprias limitações, por isso não posso dar uma boa recomendação sem saber mais sobre sua situação. Aqui estão alguns links para discussões com alguns conselhos que podem ajudá -lo:

http://groups.google.com/group/android-ndk/browse_thread/thread/842ca9d7d82995b0

http://groups.google.com/group/android-ndk/browse_thread/thread/4e25a5dfd46f8fea/1269bcd10bdb066d?lnk=gst&q=apk+compressed#1269bcd1

Posso dar a você sugestões mais específicas se soubesse a) quantos recursos você precisava para acessar b) o tamanho do maior recurso que você encontrará, mais especificamente, são todos os seus recursos <1 MB em tamanho não compactados?

Outras dicas

Em teoria, você pode passar o código de entrada para o código C ++ nativo e chamá -lo de seus métodos. Você pode até implementar um iStream em cima deles. No entanto, não acho que seja isso que você procura.

Lembre -se de que os arquivos de ativos no APK não são armazenados como, bem, arquivos. Eles são compactados e arquivados - um APK é na verdade um arquivo ZIP renomeado. Então, eu recomendo copiar o ativo em uma pasta de dados de dentro do Java e depois passar o nome do arquivo dessa cópia para C ++.

A propósito, isso exclui completamente a escrita para esses ativos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top