나는 아이폰 프로그래밍을 처음 사용합니다. 충돌이있는 두 개의 uiimageview가 있습니다. 그러나 내부의 이미지는 정사각형이 아니므로 구석을 치면 두 이미지 사이에 존재하지 않는 충돌을 감지합니다. 이것은 UIImageViews가 사각형이기 때문입니다. 모서리를 치면 충돌을 감지 할 수있는 방법을 찾지 못했기 때문에 (존재한다면 좋을 것입니다.), 나는 uiimageview 대신 두 개의 스프라이트를 만들어야한다고 생각합니다. 나는 코코아 2sd가 없다. xcode 3.1이 있습니다. 어떻게 간단한 스프라이트를 선언하고 그들 사이의 충돌 감지기를 확인합니까?아이폰 - 간단한 스프라이트 만드는 법?
답변
투명하지 않은 픽셀의 충돌은 CoreGraphics를 사용하면 비효율적입니다.
cocos2d 및 상자 2d 학습에 투자하는 것이 좋습니다.
예를 들어 도구를 사용하여 스프라이트 주변에 작성하는 비이저 경로를 사용합니다. physics editor
다음은 스프라이트의 모양을 유지하는 모양 파일에 저장됩니다. 그런 다음 cocos2d의 스프라이트에 연결되고 충돌이 배경에있는 모양에 대해 수행됩니다. 디버그 모드를 켜면 화면의 모양을 볼 수 있습니다.
이것은 비트 마스크를 형상에 할당함으로써 다음 단계로 나아갈 수 있으며, 이러한 온/오프 스위치는 예를 들어. 특정 스프라이트가 다른 스프라이트와 충돌 할 때 발생하는 것을 선택합니다 (다른 모양 충돌 쌍에 대해 다른 애니메이션 및 사운드 효과를 트리거 할 수 있음). 한 가지 중요한 점은 런타임 중에 더 많은 검사가 필요하고 프레임 속도가 떨어질수록 더 적은 양의 정점을 갖는 Beizer 경로로 스프라이트 모양을 잘라내고 시도하는 것이 중요하다는 것입니다.
즉, 각 픽셀을 검사해야하므로 cocos2d에서도 비 투명 부분의 충돌을 검사하는 것은 적합하지 않습니다.
이 방법을 사용
// img_view1의 RECT를 들어 // 매개 변수입니다 x, y, 폭, 높이 당신의 의견에 대한 CGRect를 사용하려는 해달라고하지만
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");
}
간단히 할 수있는 각각의 프레임 속성을 사용하십시오.
-(BOOL)viewsDoCollide:(UIView *)view1 :(UIView *)view2{
if(CGRectIntersectsRect(view1.frame, view2.frame))
{
return YES;
}
return NO;
}
하지만
하지만, 상단의 예와 관련하여 정사각형 이미지 뷰의 구석에 충돌하는 경우 여전히 충돌을 등록하지 않겠습니까? – 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 초기 것들을 포함 된 새 이미지를 시도하십시오 cocoa2d 사용하는 경우는 좋은 것, 중복. 솔직히이 결과를 얻는 가장 좋은 방법인지는 모르지만 분명히 효과가 있다는 것을 알고 있습니다.
- 1. 스프라이트 키트에 바람 효과를 만드는 법
- 2. 아이폰 프로젝트에서 명령 행 도구를 만드는 법
- 3. 아이폰 앱을위한 커스텀 버튼 메뉴 만드는 법?
- 4. 아이폰 앱을위한 연필 스트로크 만드는 법?
- 5. 아이폰 SDK로 비디오 월을 만드는 법
- 6. 적인 Cocos2D - 아이폰 스프라이트
- 7. Cocos2d 아이폰 스프라이트 문제
- 8. 간단한 JSON API를 만드는 법. 부두로?
- 9. 자바에서 간단한 상태 머신을 만드는 법
- 10. 아이폰 "맵"앱처럼 두 번째 레이어 뷰를 만드는 법
- 11. cocos2d 3.0에서 스프라이트 점프하는 법
- 12. Xcode 커브 만드는 법?
- 13. 코드만으로 웹보기를 만드는 법
- 14. MP3 플레이어 만드는 법?
- 15. Extjs에서 트리를 만드는 법
- 16. 게임 게시판 만드는 법
- 17. 아이폰 화면보다 큰 화면을 볼 수있는 앱을 만드는 법
- 18. 점프 애니메이션을 만드는 법
- 19. Delphi - 다이어그램 만드는 법?
- 20. 아이폰 NSPredicate Inner JOIN하는 법?
- 21. 아이폰 SDK에서 이메일 보내는 법?
- 22. 이미지에 구멍을 만드는 법 iphone
- 23. 플레이어에서 적의 스프라이트를 만드는 법
- 24. hadoop 러너 만드는 법?
- 25. 간단한 애니메이션 스프라이트 액션 스크립트를 만드는 방법은 무엇입니까?
- 26. ExtJS4 : 수평 메뉴 만드는 법?
- 27. Windows 용 C++에서 간단한 프로그램 만들기. GUI를 만드는 법
- 28. x => x.List에 간단한 식 트리를 만드는 법
- 29. PHP로 텔레 그램 봇에서 간단한 퀴즈와 버튼 응답을 만드는 법?
- 30. PHP에서 비교적 간단한 CRUD 모델로 테이블 구조를 만드는 법?
왜 Xcode 3.1을 사용하고 있습니까? – msgambel