Jump to content

[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.

Edited by Testudo
Link to comment
Share on other 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.

Edited by Androc
Link to comment
Share on other 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.

Link to comment
Share on other 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+

Edited by thibs200
Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...