"In App purchase"를 사용하여 iAd를 제거하는 데 도움이 필요합니다. "In App Purchase"에 대한 코드 작업 중입니다. 하지만 (IOS) SpriteKit Game으로 구현하는 방법을 모른다. View Controller에서 구현할 때 훌륭하게 작동하지만 MyScene.m에서 작동해야합니다. "-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
"메서드의 "구매"알림 창에서 버튼을 누르면 플레이어가 구매하게합니다.SpriteKit의 앱 구매 통합
This code is working in Storyboard and has IBbutton but it is not seen in SKScene.
I am beginner developer and know how SKScene and MyScene but thats now enough.
If you want to look at code let me know thanks
Here is ny Code:
in View Controller.h I declare
@interface ViewController : UIViewController <ADBannerViewDelegate>
{
IBOutlet ADBannerView *iadBanner;
//
}
@property (nonatomic,strong) NSArray*products;
@property(nonatomic,strong)NSUserDefaults*defaults;
@end
In ViewController.m
#import "MyNewlyCreatedScene.h"
#import "ViewController.h"
#import <StoreKit/StoreKit.h>
@interface ViewController()
@end
@implementation ViewController
@synthesize /*idBanner*/ products,defaults;
- (void)viewDidLoad
{
[super viewDidLoad];
[[SKPaymentQueue defaultQueue]addTransactionObserver:(id)self];
defaults =[NSUserDefaults standardUserDefaults];
BOOL isPro=[defaults boolForKey:@"isPro"];
if (!isPro) {
//user code here
[self fetchProducts];
} else {
iadBanner.alpha=0.0;
}
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
defaults =[NSUserDefaults standardUserDefaults];
BOOL isPro=[defaults boolForKey:@"isPro"];
if (!isPro) {
//user code here
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[banner setAlpha:1];
[UIView commitAnimations];
}
else
{
iadBanner.alpha=0.0;
}
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[banner setAlpha:0];
[UIView commitAnimations];
}
-(void)fetchProducts{
SKProductsRequest*request = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet
setWithArray:@[@"testingAppPurchaseID "]]];
request.delegate = (id)self;
[request start];
}
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
products = response.products;
NSLog(@"Product was purchased");
}
-(void)request:(SKRequest*)request didFailWithError:(NSError *)error{
NSLog(@"%@",error);
}
-(void)buy:(SKProduct*)product{
SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue]addPayment:payment];
}
-(IBAction)removeAdvertisment:(id)sender
{
SKProduct *prod = [products objectAtIndex:0];
[self buy:prod];
}
-(void)paymentQueue:(SKPaymentQueue*)queue updatedTransactions:(NSArray *)transactions{
for (SKPaymentTransaction *tx in transactions) {
switch (tx.transactionState) {
case SKPaymentTransactionStatePurchased:
[[SKPaymentQueue defaultQueue]finishTransaction:tx];
//_____________________
iadBanner.alpha=0.0;
//______________________
[defaults setBool:YES forKey:@"isPro"];
break;
case SKPaymentTransactionStateFailed:
[[SKPaymentQueue defaultQueue]finishTransaction:tx];
NSLog(@"Error:%@",tx.error);
break;
case SKPaymentTransactionStateRestored:
[[SKPaymentQueue defaultQueue]finishTransaction:tx];
break;
default:
break;
}
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];``
}
@end
In Storyboard I add iAdbannerView and a button and connect button to action, and set iAdbannerView to delegate
Give me some hints how to solve this problem.
많은 개발자가 앱 스토어에서 게임을하는 이유가 무엇인지는 MyScene에 IN 앱 구매가 구현되어 있음을 의미하므로 도움을 받으십시오.
"코드를보고 싶다면 알려주세요"... 아니요, ** ** 코드를 살펴 봅니다. 코드에 문제가있는 경우 코드를 게시해야하며, 개선 방법을 제안하고 문제점을 지적 할 수있는 다른 방법은 무엇입니까? – LearnCocos2D