2009-12-20 5 views
0

Je travaille sur une application iPhone à défilement latéral, et j'ai toutes les ressources, sauf la partie réelle de défilement latéral! Comment puis-je créer une application pour qu'elle défile latéralement? Pour être plus précis, je veux que la vue de l'application défile quand un UIImageview (joueur) frappe la bordure droite/gauche de l'écran.Comment créer une application iPhone à défilement latéral?

<: EDIT:>
Je suis extrêmement désolé pour toute cette confusion! Tout ce que je fais est une application iPhone SAMPLE seulement pour être utilisé dans le simulateur. Dans l'application, j'ai une UIImaageview qui se déplace lorsque vous touchez flèche UIImageviews. VEUILLEZ NOTER QUE TOUTES LES INFORMATIONS DITES AVANT CETTE PHRASE FONCTIONNENT PARFAITEMENT! Maintenant, mon problème est que je veux que le UIView défiler seulement une image (cela signifie qu'il ne va pas pour toujours;)). J'ai essayé d'utiliser un UIScrollView, mais cela n'a pas fonctionné. Enfin, je ne prévois pas d'utiliser Cocos2D ou tout autre moteur de jeu en plus d'un UIview basique. Ceci est seulement une application de test, pas une extravagance de codage ...

Répondre

2

Commencez avec un modèle d'application basé sur la vue afin de comprendre l'essentiel. Plus tard, vous pouvez intégrer votre code existant.

Créer une image de fond transparente 320 x 960 pixels, nommé "seamless.png"

Ajouter ce Ivar à votre contrôleur de vue .h fichier

UIImageView *bg; 

@property (nonatomic, retain) UIImageView *bg; 

Dans votre fichier .m ajouter ces #defines avant la ligne @implementation, le @synthesize après.

#define kUpdateRate (1.0/60.0) 
#define kMoveY (3.0) 
#define kTopY (0.0) 
#define kBottomY (480.0) 
@synthesize bg; 

Ajoutez cette méthode.

-(void)scrollView; { 
float oldY = self.bg.center.y + kMoveY; 
float newY = oldY; 

if (oldY > kBottomY) { 
    newY = kTopY; 
    } 

self.bg.center = CGPointMake(self.bg.center.x, newY); 
} 

Ajoutez cela à votre viewDidLoad méthode.Lorsque vous exécutez l'application, vous devriez avoir un joli fond de défilement.

Pour résumer ce qui se passe: Une minuterie est configuré pour appeler à plusieurs reprises ScrollView:

Là, l'image est déplacée vers le bas jusqu'à ce qu'il atteigne un point prédéfini (kBottomY), au cours de laquelle sa position est sauté secours vers le haut (kTopY) et ça recommence.

Vous pouvez le personnaliser pour ne faire défiler que lorsque vous le souhaitez ou défiler dans l'autre sens, n'est-ce pas?

1

Essayez-vous d'utiliser un UIScrollView? Si c'est le cas, réglez simplement la taille du contenu de votre scrollView sur quelque chose de plus large que l'écran. Par exemple:

self.scrollView.contentSize = CGSizeMake(640, 480); 
+0

Pas un UIScrollView, je fais une application de jeu, pas un utilitaire/menu. et pour être plus précis, je veux que la vue de l'application défile quand un UIImageview (joueur) frappe la bordure droite/gauche de l'écran. Désolé pour la confusion! – Flafla2

1

Vous devez utiliser un UIScollView (http://www.iphonedevsdk.com/forum/iphone-sdk-tutorials/3393-uiscrollview-tutorial.html). Ou ai-je manqué le point?

+0

Pas un UIScrollView, je fais une application de jeu, pas un utilitaire/menu. et pour être plus précis, je veux que la vue de l'application défile quand un UIImageview (joueur) frappe la bordure droite/gauche de l'écran. – Flafla2

+0

bonne chance alors, je ne peux pas vraiment vous aider là-bas ... :-) –

3

Si vous écrivez un jeu, vous pouvez bénéficier d'un grand nombre des fonctionnalités qui vous sont données par des moteurs tels que .

1

Il suffit de rendre la vue principale plus large que l'écran et de modifier les limites en conséquence pour afficher une partie différente de la vue principale. Cela suppose que votre vue principale ait une sorte de largeur limitée. C'est un peu plus compliqué si cette vue est éternelle. Dans ce cas, vous modifiez les limites et dessinez le contenu nouvellement révélé. Si cela n'a pas de sens alors je pense que vous avez besoin de reformuler votre question ou de faire quelques expériences pour affiner ce que vous demandez.

1

Jetez un oeil à Cocos2D pour l'iPhone qui comprend également un choix de 2 moteurs de collision, tamia et BOX2D

Je vous recommande également le développement du jeu de livre de oreilly iPhone, qui, si vous êtes nouveau au jeu le développement enseignera comment lancer un framework de jeu de base

2

Si l'image à défilement latéral est grande, je suggère une vue défilée tout en profitant de CATiledLayer. Voir la vidéo WWDC10 Session 104 et l'exemple de code "Tiling".

BTW, il n'y a rien dans les documents Apple qui semblent préjuger de l'utilisation des vues de défilement pour l'utilitaire ou les menus.

Questions connexes