Aller au contenu

[DEMO TECHNIQUE]Moteur physique


Recommended Posts

Bonjour,

je réalise une demo technique d'un moteur physique java pour les jeux.

La démo utilise l'accéléromètre pour faire varier le sens de gravité du monde ou des cube et des balles évoluent de manière "réalistes".

En cliquant l'écran vous pouvez ajouter de nouveaux objets (balles, cube).

Ca tourne pas trop mal sur mon HTC Desire, si vous testez la démo n'hésitez pas à revenir vers moi et me dire au bout de combien d'objet le moteur commence à ralentir en précisant votre config.

Jocelyn.

L'apk est en pièce jointe.

Modifié par Testudo
Lien vers le commentaire
Partager sur d’autres sites

Galaxy S Eclair JF3 "de base", donc.

Lorsque je lance l'appli il y a certain nombre d'objets, je tourne à 55-60 FPS (le nom est un peu petit).

Une petite remarque : il serait intéressant d'avoir le nombre d'objets créés pour que lorsque tu fais "new game" tu puisses cliquer comme un con sans compter les objets.

Car là, je dirais à vue de pif, j'en ai créé une vingtaine-trentaine et je suis tombé à 30 FPS.

Edit : bon, comme je suis sympa, j'ai compté. J'ai créé 50 objets et je suis à 25 FPS.

Modifié par Androc
Lien vers le commentaire
Partager sur d’autres sites

Merci de ton retour, à partir de combien d'objets le "jeu" te semble-t-il pas acceptable niveau fluidité.

Ca dépend du type de jeu au final mais sur mon téléphone, je dirais qu'au delà de 30 objets, les lenteurs commencent à se faire sentir et je tourne à environ 33 FPS.

Lien vers le commentaire
Partager sur d’autres sites

j'étais en target 2.2 et minsdk = 6 soit 2.01

Je le repasse en minsdk 4 soit 1.6.

L'apk est mis à jour vous pouvez retélécharger.

ok cool merci de ta réactivité, je DL et je test et je te tiens au courant

Bon Install ok

lancement : Message d'erreur "fermeture soudaine de l'application"

ptre que dans ton code tu utilise du code réservé pour les 2.0+ ce qui expliquerais le force close et d'ou que tes compilés pour les 2.1+

Modifié par thibs200
Lien vers le commentaire
Partager sur d’autres sites

Voilà la pile d'erreur sur un Magic.

Apparement tu fait des appels de méthode inconnu (android.view.MotionEvent.getX)

I/ActivityManager(   81): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=fr.testudo.box2dD
emo/.BoxMain }
D/WifiService(   81): ACTION_BATTERY_CHANGED pluggedType: 2
I/ActivityManager(   81): Start proc fr.testudo.box2dDemo for activity fr.testudo.box2dDemo/.BoxMain: pid=32004 uid=10026 gids={}
I/ActivityManager(   81): Process com.sputnik.wispr (pid 31999) has died.
I/ActivityManager(   81): Low Memory: No more background processes.
E/dalvikvm(32004): Could not find method android.view.MotionEvent.getX, referenced from method fr.testudo.box2dDemo.views.GameView.onTouchEvent
W/dalvikvm(32004): VFY: unable to resolve virtual method 42: Landroid/view/MotionEvent;.getX (I)F
W/dalvikvm(32004): VFY:  rejecting opcode 0x6e at 0x0013
W/dalvikvm(32004): VFY:  rejected Lfr/testudo/box2dDemo/views/GameView;.onTouchEvent (Landroid/view/MotionEvent;)Z
W/dalvikvm(32004): Verifier rejected class Lfr/testudo/box2dDemo/views/GameView;

D/AndroidRuntime(32004): Shutting down VM
W/dalvikvm(32004): threadid=3: thread exiting with uncaught exception (group=0x4001da28)
E/AndroidRuntime(32004): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(32004): java.lang.VerifyError: fr.testudo.box2dDemo.views.GameView
E/AndroidRuntime(32004):        at java.lang.Class.getDeclaredConstructors(Native Method)
E/AndroidRuntime(32004):        at java.lang.Class.getConstructor(Class.java:484)
E/AndroidRuntime(32004):        at android.view.LayoutInflater.createView(LayoutInflater.java:474)
E/AndroidRuntime(32004):        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:564)
E/AndroidRuntime(32004):        at android.view.LayoutInflater.rInflate(LayoutInflater.java:617)
E/AndroidRuntime(32004):        at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
E/AndroidRuntime(32004):        at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime(32004):        at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
E/AndroidRuntime(32004):        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:313)
E/AndroidRuntime(32004):        at android.app.Activity.setContentView(Activity.java:1620)
E/AndroidRuntime(32004):        at fr.testudo.box2dDemo.BoxMain.onCreate(BoxMain.java:39)
E/AndroidRuntime(32004):        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
E/AndroidRuntime(32004):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
E/AndroidRuntime(32004):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
E/AndroidRuntime(32004):        at android.app.ActivityThread.access$2100(ActivityThread.java:116)
E/AndroidRuntime(32004):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
E/AndroidRuntime(32004):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(32004):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(32004):        at android.app.ActivityThread.main(ActivityThread.java:4203)
E/AndroidRuntime(32004):        at java.lang.reflect.Method.invokeNative(NativeMethod)
E/AndroidRuntime(32004):        at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(32004):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
E/AndroidRuntime(32004):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
E/AndroidRuntime(32004):        at dalvik.system.NativeStart.main(Native Method)

I/Process (   81): Sending signal. PID: 32004 SIG: 3
I/dalvikvm(32004): threadid=7: reacting to signal 3
I/dalvikvm(32004): Wrote stack trace to '/data/anr/traces.txt'
D/NetworkLocationProvider(   81): onCellLocationChanged [16517,40407314]
W/ActivityManager(   81): Launch timeout has expired, giving up wake lock!
W/ActivityManager(   81): Activity idle timeout for HistoryRecord{435733e0 fr.testudo.box2dDemo/.BoxMain}
I/Process (32004): Sending signal. PID: 32004 SIG: 9
I/ActivityManager(   81): Process fr.testudo.box2dDemo (pid 32004) has died.

Lien vers le commentaire
Partager sur d’autres sites

La méthode de gestion d'évènement que j'utilise pour chaque dev passe par les méthode de positon multitouch (qui peut le plus peut le moins).

C'est en effet pas utile pour la démo mais c'est dans mon framework technique basique. C'est aussi pour ca que le minsdk doit être positionné à 5.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...