Cocos2d'yi kullanarak iPhone 2d oyununu geliştiriyorum. Bir Seçiciye ihtiyacım var. Cocos2d içinde Picker kullanmak mümkün mü! Mümkünse bana söyle, Cocos2d'de bir Seçici'yi nasıl kullanabilirim?Cocos2d'de UIPickerView kullanmak mümkün mü?
2
A
cevap
5
Evet, standart UIView tabanlı sınıfları Cocos2D sınıflarıyla karıştırabilir ve eşleştirebilirsiniz.
Uygulamanızın delegesinde, Yönetmen'i başlattığınızda, bir UIWindow oluşturdunuz ve Direktörü ona eklediniz. Ayrıca, bir referansı appdelegate'daki pencereye de kaydedebilirsiniz. Artık Pencereye UIViews oluşturabilir ve ekleyebilir ve yönetmen aracılığıyla her zamanki gibi cocos2d düğümlerini değiştirebilirsiniz.
Buradan, UIPickerView oluşturma ve pencereye ekleme meselesi. UIPickerView'in yapılandırılması tamamen kendisine ait bir görevdir ... Nitrex88'in bir good video on the subject vardır. Ayrıca, sadece UIPickerView değil, daha birçok UIView alt sınıfı için sağlam bir örnek için UICatalog'a bakın.
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "cocos2d.h"
@interface AppDelegate {
UIWindow *window;
NSArray *pickerValues;
}
@property (nonatomic, retain) UIWindow window;
@property (nonatomic, retain) NSArray *pickerValues;
@end
@implementation AppDelegate
@synthesize window, pickerValues;
-(void)applicationDidFinishLaunching:(UIApplication *)application {
// Create Window
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[window setUserInteractionEnabled:YES];
[window setMultipleTouchEnabled:YES];
// Set up Director and attach to window
[[Director sharedDirector] attachInWindow:window];
[[Director sharedDirector] setLandscape:YES];
[[Director sharedDirector] runWithScene:[MyScene node]];
// Create one large view and rotate the coordinates to landscape
UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(0.0f,0.0f,480.0f, 320.0f)];
parentView.transform = CGAffineTransformIdentity;
parentView.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
parentView.bounds = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f);
// Initialize picker and its data source
pickerValues = [[NSArray alloc] initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",nil];
UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0f, 195.0f, 320.0f, 125.0f)];
[pickerView setDelegate:self];
// Attach picker to parent view and parent view to window
[parentView addSubview:pickerView];
[window addSubview:parentView];
[window makeKeyAndVisible];
}
- (void) dealloc {
[window release];
[pickerValues release];
[super dealloc];
}
// ====================
// UIPicker Callbacks
// ====================
// Fire when new picker values are selected
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSString *numberSequence = [NSString stringWithFormat:@"Sequence: %@%@%@",
[pickerValues objectAtIndex:[thePickerView selectedRowInComponent:0]],
[pickerValues objectAtIndex:[thePickerView selectedRowInComponent:1]],
[pickerValues objectAtIndex:[thePickerView selectedRowInComponent:2]]];
NSLog(numberSequence);
}
// Number of picker wheels in the picker
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 3;
}
// Number of items in each picker wheel
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [pickerValues count];
}
// Title for Row #
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [pickerValues objectAtIndex:row];
}
// Row height in pixels
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {
return 40.0;
}
// Column width in pixels
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
return 90.0f;
}
// ====================
@end
: Burada
Cocos2d uygulamasına önemsiz bir UIPicker ekleyerek bir örnek
İlgili konular
- 1. DISPLAY olmadan pyplot kullanmak mümkün mü?
- 2. AIDL arabirimlerinde miras kullanmak mümkün mü?
- 3. OCaml'de boru kullanmak mümkün mü? F In #
- 4. SHA256CryptoServiceProvider ve WinXP'de kullanmak mümkün mü?
- 5. Arabirim tanımında alıcı/ayarlayıcı kullanmak mümkün mü?
- 6. Panda3D'yi bir wxPython uygulamasında kullanmak mümkün mü?
- 7. SystemEvents ile Özel EventArgs kullanmak mümkün mü?
- 8. xUnit ile Bağımlılık Enjeksiyonu kullanmak mümkün mü?
- 9. E-postalardaki degradeleri kullanmak mümkün mü?
- 10. Paradox veritabanı ile nHibernate kullanmak mümkün mü?
- 11. Bir e4 uygulamasında FormEditor kullanmak mümkün mü?
- 12. JSXTransformer.js ile Harmony (ES6) kullanmak mümkün mü?
- 13. Lumen'de (Laravel) Kiril sembolleri kullanmak mümkün mü?
- 14. Delphi yöntemi argümanlarında Attributes kullanmak mümkün mü?
- 15. Java SE ortamında javax.interceptor kullanmak mümkün mü?
- 16. Gömülü modda OCaml kullanmak mümkün mü?
- 17. Linq ile nesnelere yansıma kullanmak mümkün mü?
- 18. Qt ile cin kullanmak mümkün mü?
- 19. Masaüstü uygulamalarında EJB 3.1 kullanmak mümkün mü?
- 20. Android Eşzamanlı interpolators kullanmak mümkün mü?
- 21. Bir Facebook Uygulamasında Paralaks kullanmak mümkün mü?
- 22. Fare ile vim kullanmak mümkün mü
- 23. pdfquery ile düzenli ifadeler kullanmak mümkün mü?
- 24. Satır içi şablonları kullanmak mümkün mü?
- 25. Sınıflandırma için gensim doc2vec kullanmak mümkün mü
- 26. Kaynakta localhost adresiyle iframe kullanmak mümkün mü?
- 27. Yansımaları kullanmak için getMethods mümkün mü?
- 28. Yönlendirme olmadan FlashMessenger'ı kullanmak mümkün mü?
- 29. Boost :: serileştirmeyi yönetilen sınıfla kullanmak mümkün mü?
- 30. Lua'nın Lua hash tablosunu kullanmak mümkün mü?