2009-07-17 9 views
1

J'ai lu trois livres (développement de jeux iPhone, livre de cuisine iPhone et début de développement iPhone), mais jusqu'à présent, je n'ai pas trouvé la réponse à ma question, alors j'espérais quelqu'un ici pourrait m'aider. Par exemple, disons que je veux avoir un joystick à l'écran, et trois boutons.iPhone View/Touch questions pour iPhone jeu

J'ai besoin que tout ceci soit visible en permanence sur le bas de l'écran et ne prenne aucune partie de la zone de rendu du jeu, c'est-à-dire ne soit pas superposée au jeu.

Ok? Maintenant, d'après ce que je peux comprendre, une façon de le faire, si j'ai bien compris, est de casser ces QUATRE contrôles, et de les placer chacun sur sa propre VUE (ou SOUS-VUE), et avoir la transparence où les autres commandes sont sur chaque couche ...

Ainsi la couche 1, aura la manette et l'arrière-plan autour de la manette, mais une section transparente à droite de celui-ci ...

la couche sous-jacente ce sera transparent là où se trouve la manette (au-dessus de la couche), et ensuite avoir le bitmap pour le bouton, puis à nouveau transparent à la droite de ce bouton ... etc. etc pour chaque couche/bouton supplémentaire.

De cette façon, j'ai une hiérarchie pour le test tactile, si c'est sur une zone transparente, envoyer à la sous-vue suivante.

Cependant, le temps que j'ai rendu le jeu et les scores, etc ... Je suis à la recherche d'environ 7 vues ...

Mes questions sont les suivantes:

  1. Est-ce la meilleure façon (optimale) de faire cela? Si non, alors comment? Y a-t-il une limite de performance ou de SDK sur View avec des sous-vues ou seulement plusieurs couches de vues? Tout peut être fait sur une seule couche/vue = - en gardant à l'esprit que le joytick se déplacera dans toutes les directions en même temps que l'on peut appuyer sur un ou plusieurs des boutons. par conséquent, un faux geste de «pincement» pourrait être détecté par un bouton sur la droite de l'écran étant pressé en même temps que le joystick est écarté de ce doigt appuyez sur ... voir?

S'il vous plaît aider, si vous le pouvez. Si j'ai compliqué cela, ou si je suis confus, pardonnez-moi - je trouve très difficile de m'apprendre des choses ... et si mes explications sont confuses, faites le moi savoir et j'essaierai et réécrivez-les.

Merci

Répondre

1

Si je comprends bien, vous demandez au UIKit de faire le compositing de vos bitmaps en 7 vues qui se chevauchent au lieu de vous-même compositing en 1 image dans une vue. Vous obtenez également le «bénéfice» de passer des clics dans une chaîne de commandement.

Je le ferais avec une vue - dessinez les bitmaps dans une image chaque fois qu'il y a un changement - ou même dessinez les bitmaps de commande de joystick/bouton au-dessus de la zone graphique principale. (Vous pouvez également ajuster la taille du contrôle et mettre à l'échelle les images.

Il ne semble pas plus simple de tester chaque clic sur la zone non transparente de chaque couche que de tester le clic sur les rectangles connus de tous les contrôles dans une seule image. Je pense que ce code serait plus clair à la fin - moins d'objets. En ce qui concerne le "pincement", le point de départ du contact doit déterminer quel contrôle est touché, et les données touchMoved détermine où il va. N'utilisez pas les données touchées pour lancer un nouveau bouton. Cela dit, je fais tout dans OpenGL, donc je suis habitué à gérer mes propres couches.