2010-06-17 6 views
6

J'essaie de faire un jeu de défilement côté facile juste pour apprendre les ficelles de la programmation de jeux sur android. Je suis venu avec une solution de comment faire mais je ne pense pas vraiment que c'est la solution la plus élégante. Je voulais avoir des idées différentes sur la façon de mettre en œuvre mon jeu, car je n'ai vraiment aucune autre solution pour le moment.Java côté jeu de défilement sur android

Voici une explication rapide de la façon dont cela fonctionne ..

J'ai essentiellement des blocs ou des objets tombent du haut de l'écran. Les blocs sont définis à partir d'une chaîne prédéfinie que je crée en utilisant un 'éditeur de carte' personnalisé.

Je crée tous les blocs au moment de la compilation, les positionne sur ou hors de l'écran et j'incrémente simplement leurs coordonnées à chaque itération du gameloop.

En fait, c'est fait un peu mieux que cela, mais cela donne une explication simple et rapide sur l'idée de base.

J'ai entendu de quelques personnes qu'au lieu d'incrémenter chaque position de bloc, laisser les blocs rester là et simplement changer la zone visible. C'est logique, mais je n'ai aucune idée de comment le faire.

Quelqu'un peut-il partager des idées ou des liens sur la façon dont je peux mettre en œuvre quelque chose comme ça? Je sais que ma solution actuelle n'est pas la meilleure.

Merci!

Répondre

7

Pour apprendre les ficelles de la programmation de jeux sur android, je vous dirigerais vers Google I/O 2009 - Writing Real-Time Games for Android session E/S de l'année dernière et this celle des sessions 2010. Les personnes qui vous informent sur la modification de la zone visible supposent probablement que vous utilisez OpenGL ES, ce que vous ne pouvez pas être, mais que vous devriez probablement considérer.

+0

Ce sont d'excellents liens, merci beaucoup – hanesjw

3

Si les blocs/objets sont indépendants les uns des autres, je continuerais à les traiter comme des objets indépendants et à mettre à jour leur position séparément. Après tout, vous voudrez peut-être un jour faire en sorte que certains d'entre eux se déplacent différemment les uns des autres. Dans le développement de jeux, il est bon de laisser le moteur aussi flexible que possible tant que vous le pouvez - polir un jeu implique beaucoup de test et de réglage des mécanismes du jeu, et plus vous devez modifier le plus poli, vous pouvez l'obtenir. Optimiser seulement si nécessaire. Mais si les blocs ne sont pas indépendants, et ne le seront pas, changer la zone d'affichage plutôt que de déplacer chaque bloc peut être une bonne idée, bien que plus d'informations sur votre jeu puissent vous aider - est-ce un jeu de plateforme? Un tireur? S'il y a une sorte d'objet contrôlé par le joueur sur le terrain de jeu, vous devrez changer sa position pour le garder à l'écran lorsque vous changez la zone visible, ce qui peut compliquer les choses. Il est difficile de conseiller sans plus de détails.

Bonne question, cependant!

EDIT:

Suite à votre commentaire, et j'ai vu votre autre question Problem decrementing in Java with '-='; Je pense que je comprends un peu mieux votre question - la principale chose que je changerais, du point de vue de la conception, serait de créer les blocs au besoin, plutôt que de les créer tous en même temps. En d'autres termes, créez les blocs sur le cadre avant qu'ils n'apparaissent sur l'écran et, une fois qu'ils sont hors de l'écran, supprimez-les. À moins que la conception du jeu ne nécessite un grand monde persistant, bien sûr - mais cela ne ressemble pas à ce genre de jeu. Le joueur peut-il revenir en arrière, ou autorisez-vous seulement le défilement unidirectionnel?

+0

Merci pour la réponse. L'idée basique du jeu est que vous avez un personnage, des blocs tombent et vous essayez de les esquiver en déplaçant le personnage. Donc les blocs sont indépendants. Je devrais garder un emplacement de chacun d'entre eux pour la détection de collision, je suppose. Alors peut-être que j'ai la bonne idée. – hanesjw

3

Replica Island (http://code.google.com/p/replicaisland/) est un jeu de code source Open Jump & Run sur Android. (C'est par le gars qui a écrit le scénario Real Real Time) Peut-être que vous pouvez obtenir de bonnes idées.