Dispositivi multipli su un unico corpo o su più organi?

Diciamo che volevo creare 1000, o forse anche 5000 linee di corpo statiche sullo schermo. Quello che mi chiedo è, qual è la differenza tra colbind tutte queste righe (fixture) su un solo corpo, o mettere each apparecchio sul proprio corpo. C'è una differenza di performance tra i due methods, oppure un metodo offre più funzionalità o controllo dell'altro metodo?

Di seguito viene mostrata la differenza tra i due methods.

  • BitmapFactory.decodeStream restituisce null quando le opzioni sono impostate
  • Immagine scattata dalla camera o dalla galleria quando si utilizza nell'image il suo orientamento che viene modificato e talvolta verticalmente allungato in Android
  • FragmentPagerAdapter - Come gestire le modifiche dell'orientamento?
  • Android Drive GooglePlayServicesUtil: l'account specificato non è stato ansible accedere
  • Widget non riesce ad avviare correttamente dopo che l'applicazione è stata arrestata
  • Crea una window di dialogo trasparente in cima all'attività
  • Colbind each row su un solo corpo:

    // Create our body definition BodyDef groundBodyDef = new BodyDef(); groundBodyDef.type = BodyType.StaticBody; // Create a body from the defintion and add it to the world Body groundBody = world.createBody(groundBodyDef); for (int i = 0; i < 1000; i++) { // Create our line EdgeShape ground = new EdgeShape(); ground.set(x1, y1, x2, y2); groundBody.createFixture(ground, 0.0f); ground.dispose(); } 

    Colbind each linea al proprio corpo:

      // Create our body definition BodyDef groundBodyDef = new BodyDef(); groundBodyDef.type = BodyType.StaticBody; for (int i = 0; i < 1000; i++) { // Create a body from the defintion and add it to the world Body groundBody = world.createBody(groundBodyDef); // Create our line EdgeShape ground = new EdgeShape(); ground.set(x1, y1, x2, y2); groundBody.createFixture(ground, 0.0f); ground.dispose(); } 

    Questo esempio di codice è specificamente in libGDX, tuttavia immagino che questo sia un concetto di box2D piuttosto semplice e potrebbe essere risolto anche senza esperienza libGDX.

    Un esempio di una ansible differenza di funzionalità è che se tutte le righe sono collegate ad un solo corpo e dovremmo call world.destroyBody(groundBody); , distruggerebbe anche tutte le linee, tuttavia se each linea è collegata ad un altro corpo, distruggeremmo solo una linea.

    Anche questo fa una differenza sostanziale però? Possiamo semplicemente call groundBody.destroyFixture(fixture); per distruggere una singola linea se sono tutti attaccati ad un solo corpo.

  • "Nessun constructor di argomenti per la class non esiste", ma lo fa
  • L'acquisto di Android inapp consuma prodotto in grado
  • Orientamento di bussola di Android su inattendibile (filter passa basso)
  • Apri sqlite in readonly direttamente dalle attività
  • Android Studio 2.2 e Jack sono bloccati da Avira Antivirus
  • L'accelerometro smette di trasmettere campioni quando lo schermo è spento su Droid / Nexus One anche con WakeLock
  • 2 Solutions collect form web for “Dispositivi multipli su un unico corpo o su più organi?”

    Dal manuale Box2D ( 7.3 Body Factory ):

    È più veloce associare più forms a un corpo statico che per creare diversi corpi statici con una sola forma su ciascuno di essi. Internamente, Box2D imposta la massa e la massa inversa di corpi statici a zero. Questo rende la math in modo che la maggior parte degli algoritmi non abbia bisogno di trattare i corpi statici come un caso speciale.

    È davvero più performante. È evidente? dipende, se hai un sacco di corpi con una sola apparecchiatura e li fai fixtures di un solo corpo, ma probabilmente non per la maggior parte dei giochi.

    Ti consiglio di utilizzare quella più semplice da implementare e renderla più performante quando ne hai veramente bisogno.

    L'utilizzo della memory può anche essere qualcosa da considerare.

    Alless nella versione C ++ di Box2D, each corpo prende una quantità fissa di memory proprio come each singolo apparecchio fa e each forma fa. Così associando each apparecchio con il proprio corpo utilizzerà più memory che creare più elementi all'interno di un unico corpo. Lo stesso numero di elementi e forms verranno utilizzati in entrambi i casi, ma in questo caso vengono utilizzati più corpi.

    Per dare un'idea di ciò che il consumo di memory è, C ++ b2Body utilizza 184 byte di memory sulla piattaforma a 64 bit ho appena printingto il risultato di sizeof(b2Body) .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.