我是iphone編程新手。我有兩個有碰撞的uiimageviews。但是,它們內部的圖像不是正方形,所以如果碰到一個角落,它會檢測到兩個圖像之間不存在的碰撞。這是因爲UIImageView是矩形。因爲我找不到一個方法,如果它碰到一個角落,就不會檢測到碰撞(這個建議,如果存在的話,會很好),我相信我應該做兩個精靈而不是uiimageviews。我沒有可可2sd。我只有xcode 3.1。我該如何聲明一個簡單的精靈並檢查它們之間的碰撞檢測器?iphone-How to make a simple sprite?
回答
使用CoreGraphics時,非透明像素上的碰撞效率很低。
你最好投資學習cocos2d和box 2d。
您可以使用工具創建的sprite周圍創建的beizer路徑。 physics editor
然後將它們存儲在一個形狀文件中,該文件保存精靈的形狀。然後將它們連接到cocos2d中的精靈,並在背景中的形狀上完成碰撞。您可以打開調試模式以查看屏幕上的形狀。
這可以通過將位掩碼分配給形狀來進行到下一級,並且這些開/關開關允許例如選擇某些精靈與其他人碰撞時會發生什麼(可能爲不同的形狀碰撞對觸發不同的動畫和聲音效果)。有一件事是不可能的,那就是嘗試使用具有最少量頂點的beizer路徑來封閉你的精靈形狀,因爲在運行時需要的檢查越多,並且幀速率可能會下降。
總之,不是不適合檢查非透明部件上的碰撞,即使在cocos2d中也需要檢查每個像素。
使用這種方法
//對於img_view1矩形 //參數是x,y,寬度,高度
CGRect image_rect1 = CGRectMake(img_view1.position.x,img_view1.position.y,100,100);
//For img_view2 rect
//parameters are x,y,width,height
CGRect image_rect2 = CGRectMake(img_view2.position.x,img_view2.position.y,100,100)
Collision detection:
if(CGRectIntersectsRect(image_rect1, image_rect2))
{
NSLog(@"Collision Example");
}
但是如果你不想使用的CGRect的意見,你可以簡單地使用它們各自的框架屬性。
-(BOOL)viewsDoCollide:(UIView *)view1 :(UIView *)view2{
if(CGRectIntersectsRect(view1.frame, view2.frame))
{
return YES;
}
return NO;
}
,但如果你使用cocoa2d
但是,關於頂級示例,如果它碰到方形圖像視圖的角落,是不是還會發生碰撞? – user2607954
請試試這個代碼
#define imageWidth 40
#define imageHeight 60
UIImage *image1 = [UIImage imageNamed:@"firstimage.png"];
UIImage *image2 = [UIImage imageNamed: @"secondimage.png"];
CGSize itemSize = CGSizeMake(imageWidth, imageHeight);
UIGraphicsBeginImageContext(itemSize);
CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
[image1 drawInRect:imageRect];
[image2 drawInRect:imageRect];
UIImage *overlappedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
的UIImage的overlappedImage是包含初始者的新形象將是巨大的,重疊。說實話,我不知道這是否是達到這個結果的最好方法,但我知道它確實有效。
- 1. make simple 2 way socket qt
- 2. jQuery simple setInterval to slideToggle
- 3. Linq to simple foreach cicles
- 4. How to make python 3 print('\ufeff')
- 5. Make a Global ViewBag
- 6. Make a tick togglebutton android
- 7. Android-How to use a fragment to display a webview
- 8. CSS sprite scale to div dimensions
- 9. JavaScript-How to make Html Table editable
- 10. No rule to make target'NOTICE-TARGET-STATIC_LIBRARIES
- 11. Android no rule to make target
- 12. How to add MBProgressHUD to a queue
- 13. a href to upper
- 14. python list value make a list
- 15. java String to a object
- 16. Array to a hash perl
- 17. WPF:How to translateTransform a rectangle?
- 18. setOnClickListener to a Programmatically ERROR
- 19. 如何添加<a href> link to make an element clickable in java for Swagger
- 20. Android jni「No Rule to make Target issue」
- 21. 混合兩個矢量:[a a]和[b b] to [a b a b]
- 22. Sorting HTML table or Dictionary keys to make specific layout
- 23. Laravel 4:Hash :: make not returned a proper value
- 24. Response.Write to a String - ASP Classic
- 25. Byte Array to Uint64 as a String
- 26. textview to pdf using a button
- 27. Add A Loading Image to Website
- 28. val a = month(start_date),year(to-date)
- 29. Containing drawing to a panel area
- 30. PDF to PDF/A-2b without dUseCIEColor
你爲什麼使用Xcode 3.1? – msgambel