最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Unity3d使用蓝牙(bluetooth)开发IOS点对点网络游戏

IT圈 admin 58浏览 0评论

2024年1月23日发(作者:彤兰梦)

#import"NetWorkP2P.h"@implementation NetWorkP2P+(NetWorkP2P *) sharedNetWorkP2P{static NetWorkP2P *sharedNetWorkObject;if(!sharedNetWorkObject) sharedNetWorkObject=[[NetWorkP2P alloc] init];return sharedNetWorkObject;}- (id)init{ self = [super init];if (self) {// Initialization code here. }return self;}-(UInt32)getPlayerScore{return playerScore;}-(UInt32)getOpponentScore{return opponentScore;}-(UInt32)getOpponentTimes{return opponentTimes;}-(UInt32)getPlayerTimes{return playerTimes;}-(NSString *)getOpponentID{return opponentID;}-(void) showPeerPickerController{if(!opponentID) { actingAsHost=YES; GKPeerPickerController *peerPickerContrller=[[GKPeerPickerController alloc] init]; te=self; tionTypesMask=GKPeerPickerConnectionTypeNearby; [peerPickerContrller show]; }}-(void)addTheScore:(UInt32)score{ playerScore+=score; NSMutableData *message=[[NSMutableData alloc]init]; NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc]initForWritingWithMutableData:message]; [archiver encodeInt:playerScore forKey:TAP_COUNT_KEY]; [archiver finishEncoding]; GKSendDataMode sendMode=GKSendDataUnreliable; [gkSession sendDataToAllPeers:message withDataMode:sendMode error:NULL]; [archiver release]; [message release];}-(void)addTimes{ playerTimes++; NSMutableData *message=[[NSMutableData alloc]init]; NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:message]; [archiver encodeInt:playerTimes forKey:TIMES_KEY];

[archiver encodeInt:playerTimes forKey:TIMES_KEY]; [archiver finishEncoding]; GKSendDataMode sendMode=GKSendDataUnreliable; [gkSession sendDataToAllPeers:message withDataMode:sendMode error:NULL]; [archiver release]; [message release];}#pragma mark game logic-(void) initGame{ playerScore=0; opponentScore=0;}-(void) hostGame{ [self initGame]; NSMutableData *message=[[NSMutableData alloc] init]; NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:message]; [archiver encodeBool:YES forKey:START_GAME_KEY]; [archiver finishEncoding]; NSError *sendErr=nil; [gkSession sendDataToAllPeers:message withDataMode:GKSendDataReliable error:&sendErr];if (sendErr) { NSLog(@"send greeting failed : %@",sendErr); } [message release]; [archiver release];}-(void) joinGame{ [self initGame];}-(void) showEndGameAlert{}-(void) endGame{ opponentID=nil; [gkSession disconnectFromAllPeers]; [self showEndGameAlert];}#pragma mark GKPeerPickerControllerDelegate methods-(GKSession *) peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type{if(!gkSession) { gkSession=[[GKSession alloc] initWithSessionID:AMIPHD_P2P_SESSION_ID displayName:nil sessionMode:GKSessionModePeer]; te=self; }return gkSession;}-(void) peerPickerController:(GKPeerPickerController *) picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session{ NSLog ( @"connected to peer %@", peerID); [session retain]; // TODO: who releases this? [picker dismiss]; [picker release];}- (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker { NSLog ( @"peer picker cancelled"); [picker release];}#pragma mark GKSessionDelegate methods//START:dchangestate- (void)session:(GKSession *)session peer:(NSString *)peerID

[DllImport("__Internal")]privatestaticexternint _getOpponentScore(); [DllImport("__Internal")]privatestaticexternint _getOpponentTimes(); [DllImport("__Internal")]privatestaticexternint _getPlayerScore(); [DllImport("__Internal")]privatestaticexternint _getPlayerTimes(); [DllImport("__Internal")]privatestaticexternvoid _addTheTimes(); [DllImport("__Internal")]privatestaticexternvoid _addTheScore(int score);publicstaticint getOpponentScore() {if(rm==Player) {return _getOpponentScore(); }return-1; }publicstaticint getOpponentTimes() {if(rm==Player) {return _getOpponentTimes(); }return-1; }publicstaticint getPlayerScore() {if(rm==Player) {return _getPlayerScore(); }return-1; }publicstaticint getPlayerTimes() {if(rm==Player) {return _getPlayerTimes(); }return-1; }publicstaticvoid addTheScore(int score) {if(rm==Player) { _addTheScore(score); } }publicstaticvoid addTheTimes() { _addTheTimes(); }}

2024年1月23日发(作者:彤兰梦)

#import"NetWorkP2P.h"@implementation NetWorkP2P+(NetWorkP2P *) sharedNetWorkP2P{static NetWorkP2P *sharedNetWorkObject;if(!sharedNetWorkObject) sharedNetWorkObject=[[NetWorkP2P alloc] init];return sharedNetWorkObject;}- (id)init{ self = [super init];if (self) {// Initialization code here. }return self;}-(UInt32)getPlayerScore{return playerScore;}-(UInt32)getOpponentScore{return opponentScore;}-(UInt32)getOpponentTimes{return opponentTimes;}-(UInt32)getPlayerTimes{return playerTimes;}-(NSString *)getOpponentID{return opponentID;}-(void) showPeerPickerController{if(!opponentID) { actingAsHost=YES; GKPeerPickerController *peerPickerContrller=[[GKPeerPickerController alloc] init]; te=self; tionTypesMask=GKPeerPickerConnectionTypeNearby; [peerPickerContrller show]; }}-(void)addTheScore:(UInt32)score{ playerScore+=score; NSMutableData *message=[[NSMutableData alloc]init]; NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc]initForWritingWithMutableData:message]; [archiver encodeInt:playerScore forKey:TAP_COUNT_KEY]; [archiver finishEncoding]; GKSendDataMode sendMode=GKSendDataUnreliable; [gkSession sendDataToAllPeers:message withDataMode:sendMode error:NULL]; [archiver release]; [message release];}-(void)addTimes{ playerTimes++; NSMutableData *message=[[NSMutableData alloc]init]; NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:message]; [archiver encodeInt:playerTimes forKey:TIMES_KEY];

[archiver encodeInt:playerTimes forKey:TIMES_KEY]; [archiver finishEncoding]; GKSendDataMode sendMode=GKSendDataUnreliable; [gkSession sendDataToAllPeers:message withDataMode:sendMode error:NULL]; [archiver release]; [message release];}#pragma mark game logic-(void) initGame{ playerScore=0; opponentScore=0;}-(void) hostGame{ [self initGame]; NSMutableData *message=[[NSMutableData alloc] init]; NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:message]; [archiver encodeBool:YES forKey:START_GAME_KEY]; [archiver finishEncoding]; NSError *sendErr=nil; [gkSession sendDataToAllPeers:message withDataMode:GKSendDataReliable error:&sendErr];if (sendErr) { NSLog(@"send greeting failed : %@",sendErr); } [message release]; [archiver release];}-(void) joinGame{ [self initGame];}-(void) showEndGameAlert{}-(void) endGame{ opponentID=nil; [gkSession disconnectFromAllPeers]; [self showEndGameAlert];}#pragma mark GKPeerPickerControllerDelegate methods-(GKSession *) peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type{if(!gkSession) { gkSession=[[GKSession alloc] initWithSessionID:AMIPHD_P2P_SESSION_ID displayName:nil sessionMode:GKSessionModePeer]; te=self; }return gkSession;}-(void) peerPickerController:(GKPeerPickerController *) picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session{ NSLog ( @"connected to peer %@", peerID); [session retain]; // TODO: who releases this? [picker dismiss]; [picker release];}- (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker { NSLog ( @"peer picker cancelled"); [picker release];}#pragma mark GKSessionDelegate methods//START:dchangestate- (void)session:(GKSession *)session peer:(NSString *)peerID

[DllImport("__Internal")]privatestaticexternint _getOpponentScore(); [DllImport("__Internal")]privatestaticexternint _getOpponentTimes(); [DllImport("__Internal")]privatestaticexternint _getPlayerScore(); [DllImport("__Internal")]privatestaticexternint _getPlayerTimes(); [DllImport("__Internal")]privatestaticexternvoid _addTheTimes(); [DllImport("__Internal")]privatestaticexternvoid _addTheScore(int score);publicstaticint getOpponentScore() {if(rm==Player) {return _getOpponentScore(); }return-1; }publicstaticint getOpponentTimes() {if(rm==Player) {return _getOpponentTimes(); }return-1; }publicstaticint getPlayerScore() {if(rm==Player) {return _getPlayerScore(); }return-1; }publicstaticint getPlayerTimes() {if(rm==Player) {return _getPlayerTimes(); }return-1; }publicstaticvoid addTheScore(int score) {if(rm==Player) { _addTheScore(score); } }publicstaticvoid addTheTimes() { _addTheTimes(); }}

发布评论

评论列表 (0)

  1. 暂无评论