我正在尝试使用游戏中心:多人游戏
到目前为止,玩家正在认证游戏中心,他们可以发送/读取分数和成就.对于多人游戏功能,我尝试了两种方法: - 使用游戏中心界面查找匹配项. - 以编程方式查找匹配项.
对于这两种方式,我有以下问题:匹配委托的匹配:player:didChangeState:方法未被调用.在apple docs中,声明如果一个玩家连接或断开连接,则会调用该委托.
在我的情况下,这个委托永远不会被调用.我想我错过了一步.在我的委托实施后(如Apple doc中所述).
- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state
{
switch (state)
{
case GKPlayerStateConnected:
// handle a new player connection.
break;
case GKPlayerStateDisconnected:
// a player just disconnected.
break;
}
if (!self.matchStarted && match.expectedPlayerCount == 0)
{
self.matchStarted = YES;
// handle initial match negotiation.
}
}
Run Code Online (Sandbox Code Playgroud)
以及找到匹配的代码.
-(void) findProgrammaticMatch
{
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = 2;
request.maxPlayers = 2;
[[GKMatchmaker sharedMatchmaker] findMatchForRequest:request
withCompletionHandler:^(GKMatch *FoundMatch, NSError *error)
{ …Run Code Online (Sandbox Code Playgroud) 请您帮忙了解如何使用谷歌脚本将图表导出为图像。
我写了这段代码,但它不起作用。我担心 API getAs已被弃用。
function TestEmailCharts(){
var sheet = SpreadsheetApp.getActiveSheet();
var charts = sheet.getCharts();
if(charts.length!=0)
{
var chartBlobs=new Array(charts.length);
var emailBody="Charts<br>";
var emailImages={};
for(var i=0;i<charts.length;i++){
chartBlobs[i]= charts[i].getAs("image/jpeg").setName("chartBlob"+i);
emailBody= emailBody + "<img src='cid:chart"+i+"'><br>";
emailImages["chart"+i]= chartBlobs[i];
}
MailApp.sendEmail({
to: "email@gmail.com",
subject: "test2",
htmlBody: emailBody,
inlineImages:emailImages});
}
}
Run Code Online (Sandbox Code Playgroud)
要重现该问题,请创建一个 Google 电子表格 创建一个包含一些数据的简单图表。
将此代码添加到脚本中。将 email@gmail.com 替换为您的电子邮件
通常您应该会收到一封带有图表图像的电子邮件,但问题是您会收到一封带有黑色图像的电子邮件。
此致。