我有一個名爲sksprite節點的數組。我需要創建一個新數組,並把最後一個數組的名稱,但最接近(另一個節點的名稱 - 傾斜 - )的精靈節點將首先在數組中,等等。 如果我沒有解釋清楚我的自我足夠清楚告訴我。如果有人知道如何去做,請告訴我。寫在這裏。 謝謝字符串數組對象 - 精靈套件
0
A
回答
1
正如我前面所說,你的問題缺乏一些具體的確切如何實施。我已經使我的代碼具有一定的通用性,可以適應幾乎所有您可能想到的場景。
我用觸摸位置座標作爲起點來計算到屏幕上4個節點的距離。點擊屏幕上的任意位置,列表將按距離順序打印4個節點名稱。
可能有更好的排序方法,但我決定採用快速和骯髒的方式。
#import "GameScene.h"
@implementation GameScene {
SKSpriteNode *node0;
SKSpriteNode *node1;
SKSpriteNode *node2;
SKSpriteNode *node3;
NSMutableArray *nodeArray;
}
-(void)didMoveToView:(SKView *)view {
self.backgroundColor = [SKColor blackColor];
nodeArray = [[NSMutableArray alloc] init];
node0 = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(10, 10)];
node0.name = @"red";
node0.position = CGPointMake(300, 300);
[self addChild:node0];
[nodeArray addObject:node0];
node1 = [SKSpriteNode spriteNodeWithColor:[SKColor blueColor] size:CGSizeMake(10, 10)];
node1.name = @"blue";
node1.position = CGPointMake(450, 500);
[self addChild:node1];
[nodeArray addObject:node1];
node2 = [SKSpriteNode spriteNodeWithColor:[SKColor yellowColor] size:CGSizeMake(10, 10)];
node2.name = @"yellow";
node2.position = CGPointMake(100, 400);
[self addChild:node2];
[nodeArray addObject:node2];
node3 = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:CGSizeMake(10, 10)];
node3.name = @"green";
node3.position = CGPointMake(200, 200);
[self addChild:node3];
[nodeArray addObject:node3];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint touchLocation = [touch locationInNode:self];
NSMutableArray *myArray = [[NSMutableArray alloc] init];
NSMutableDictionary *myDict = [[NSMutableDictionary alloc] init];
for(SKSpriteNode *object in nodeArray) {
float xDistance = fabsf(touchLocation.x - object.position.x);
float yDistance = fabsf(touchLocation.y - object.position.y);
NSString *totalDistance = [NSString stringWithFormat:@"%f",(xDistance+yDistance)];
[myDict setValue:totalDistance forKey:object.name];
}
float lowestValue = 999999.0;
NSMutableString *lowestName = [[NSMutableString alloc] init];
for (int i=0; i<[nodeArray count]; i++) {
for (NSString *key in myDict) {
if([[myDict objectForKey:key] floatValue] < lowestValue) {
lowestValue = [[myDict objectForKey:key] floatValue];
[lowestName setString:key];
}
}
[myArray addObject:[NSString stringWithString:lowestName]];
[myDict removeObjectForKey:lowestName];
lowestValue = 999999.0;
}
NSLog(@"values: %@",myArray);
}
}
相關問題
- 1. 精靈中的對象數組
- 2. 精靈howto重複字符串N次作爲字符串數組
- 3. 字符串數組到對象數組
- 4. 精靈如何返回一個無主數組字符串
- 5. 獲取精靈套件對象向上移動
- 6. 對象數組作爲字符串到對象數組(jSON)?
- 7. JavaScript字符串和對象數組
- 8. 從兩點(cgpoint)精靈套件檢測精靈 - swift
- 9. JQuery字符串到對象數組
- 10. 字符串數組Java到Json對象
- 11. 對象字符串數組jQuery
- 12. JSON字符串到對象數組c#
- 13. 可可字符串對象數組
- 14. 字符串數組java對象
- 15. 字符串數組或對象
- 16. 更新組中嵌套的精靈
- 17. 如何使字符串startswith和equalsIgnoreCase字符串數組對象
- 18. 你如何將精靈變成可變數組的對象?
- 19. 在字符串數組中搜索精確的字符串?
- 20. 顏色搭配精靈套件和swift
- 21. 轉換場景精靈套件
- 22. 按字符串屬性對象排序對象的數組
- 23. 對象轉換爲字符串時,對象數組(JAVA)
- 24. 從字符串數組中創建對象的數組
- 25. Unity2D組合精靈
- 26. AS3:分組精靈
- 27. 從對象,它是一個字符數組(不是對象[])獲取字符串
- 28. 每個精靈的對象? (Games,OOP)
- 29. 對象序列化的魔法精靈
- 30. 對象不會改變精靈
用一些相關代碼更新您的問題。顯示你所嘗試的並解釋你有什麼問題。 – rmaddy
我不知道該怎麼做。所以我沒有代碼顯示。 – 100tomer
當你給別人發表評論時,就像@rmaddy一樣。否則,該人將不會收到通知。其次,你的問題不是很清楚。你目前的陣列究竟是什麼?實際的節點?只是節點的名字?當你說「最近的節點」時,參考點是什麼?到了什麼,另一個節點?觸摸?還有別的嗎?再次「最接近」意味着什麼?一個圓圈?只是右邊,左邊,上下?你必須具體,並認爲你的問題讓別人去理解它。如果您沒有發佈任何代碼,這一點尤其重要。 – sangony