11/08/2018, 22:01

Tìm hiểu và sử dụng cơ bản về Sprite kit

Chào anh chị em Sau một tháng, hôm nay tôi lại xin được chia sẻ với anh chị em một hướng dẫn cơ bản nhất về Sprite kit. Nhưng mà sprite kit là cái gì? Sprite Kit là một framework mới thú vị để làm cho trò chơi 2D được xây dựng trong iOS 7. Nó hỗ trợ cho các hiệu ứng như videos, filters, and ...

Chào anh chị em Sau một tháng, hôm nay tôi lại xin được chia sẻ với anh chị em một hướng dẫn cơ bản nhất về Sprite kit.

Nhưng mà sprite kit là cái gì? Sprite Kit là một framework mới thú vị để làm cho trò chơi 2D được xây dựng trong iOS 7. Nó hỗ trợ cho các hiệu ứng như videos, filters, and masking, an integrated physics library, và vân vân. Nó là một công nghệ khá là mới. (y)

Ưu nhược điểm của Sprite kit:

  • Ưu điểm:
  • Nó được xây dựng ngay vào iOS, do vậy không cần phải thêm nhiều các thư viện hoặc phụ thuộc vào bên ngoài. À nó được viết bởi Apple nên bạn có thể yên tâm là nó được hỗ trợ tốt nhất.

  • Nó có công cụ hỗ trợ cho texture atlases and particles.

  • Nó cho phép làm những thao tác phức tạp cái mà bạn không thể làm trong các framework khác như xử lý video, sprite hoặc các hiệu ứng hình ảnh, mask....

  • Nhược điểm:
  • Chỉ dùng được trong iOS mà không thể dùng cho Android.

  • Nó còn trong giai đoạn đầu nên cũng không có nhiều tính năng như Cocos2d. Đặc biệt còn không có khả năng viết custom OpenGL.

Sau đây chúng ta cùng làm một demo đơn giản để hiểu hơn về Sprite kit, các bạn nhớ nâng cấp lên Xcode 5 nhé:

  1. Bước đầu tiên mở xCode lên -> FileNewProject, chọn mẫu iOSApplicationSpriteKit Game và Next.

Screen-Shot-2014-10-25-at-2.51.46-PM-300x175.jpg

  1. Nhập Product name, iPhone for Devices và next:

Screen-Shot-2014-10-25-at-2.51.46-PM-300x175.jpg

  1. Chạy project và bạn sẽ nhìn thấy hình sau.

T10-TungNV-168x300.png

  1. Quá hay phải không, tiếp theo chúng ta code một đoạn code như sau:

Screen-Shot-2014-10-25-at-6.27.08-PM-300x166.jpg

self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0]; SKLabelNode *myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"]; myLabel.text = @"Hello, World!"; myLabel.fontSize = 30; myLabel.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); [self addChild:myLabel];

Đoạn code trên cài đặt backgroundColor cho game. Sau đó thêm một Labeltext với dòng chữ "Hello, World!" với font Size 30 và ở giữa frame của chúng ta, sau đó add vào frame [self addChild:myLabel].

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"groud"]; [self addChild:sprite]; sprite.position = CGPointMake([UIScreen mainScreen].bounds.size.awidth/2, 0); sprite.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(sprite.size.awidth, sprite.size.height/4)]; sprite.physicsBody.dynamic = FALSE;

  • Tiêp đến chúng ta cùng tạo mặt đất cho game. Set size của physicbody sprite.physicsBody.dynamic = FALSE; với mục đích cố định mặt đất của chúng ta.

-(void)touchesBeganNSSet *)touches withEventUIEvent )event { / Called when a touch begins */ NSLog(@"touch"); for (UITouch *touch in touches) { CGPoint location = [touch locationInNode:self]; SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"]; sprite.position = location; sprite.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:sprite.size]; sprite.xScale = 0.2; sprite.yScale = 0.2; //sprite.physicsBody.dynamic = FALSE; // SKAction *action = [SKAction rotateByAngle:M_PI duration:1]; // // [sprite runAction:[SKAction repeatActionForever:action]]; [self addChild:sprite]; } }

  • Hàm -(void)touchesBeganNSSet *)touches withEventUIEvent *)event

được gọi mỗi khi người dùng bắt đầu touch xuống màn hình. Tại đây chúng ta sẽ sinh ra một đối tượng và khi sinh ra nó sẽ tự động rơi xuống mặt đất.

Vậy là xong, chúng ta có thể chạy thử nó. Và dưới đây là hình ảnh cho demo này. Screen-Shot-2014-10-25-at-6.26.43-PM-300x187.jpg

  • Đây là một ý tưởng game mà hồi trước tôi thấy bạn Đỗ Trung Kiên chơi, game có một cái ròng rọc lắc lắc ở trên và khi touch thì nó tự rơi xuống. Nếu các tầng rơi xuống và chồng lên nhau mà không bị đổ thì clear màn đó.

Do không có nhiều thời gian nên tôi không thể tiếp tục phát triển. Nếu bạn có hứng thú hãy tiếp tục ý tưởng này bằng Sprite kit.

Bạn có thể tham khảo thêm ở đây: http://www.raywenderlich.com/42699/spritekit-tutorial-for-beginners Đây là link download project: https://dl.dropboxusercontent.com/u/138947740/T10/SpriteKitStudy.zip

Bài liên quan

Hiểu và sử dụng ” meta robot tags ” cho chiến lược SEO của bạn

Thường thì tệp tin robots.txt đặt tại thư mục gốc của tên miền là công cụ lý tưởng để giao tiếp với các máy tìm kiếm (Robots với Google, Yahoo và Microsofts) trong việc đánh chỉ số trang web. Tuy nhiên trong một số trường hợp, tệp tin /robots.txt trở nên hạn chế và việc sử dụng nó rất rườm ...

Vũ Văn Thanh viết 2 tuần trước

[SQL] Tìm hiểu và sử dụng Json trong Sqlserver 2016

Trong Microsoft Sqlserver 2016, microsoft đã tích hợp thêm Json vào trong hệ quản trị cơ sở dữ liệu này. Vì thế, các bạn có thể thấy được tầm quan trọng và phổ biến Json như thế nào. Các bạn cũng có thể thấy ngày nay, Facebook API hay các server API ...

Hoàng Hải Đăng viết 3 tuần trước

Tìm hiểu cách sử dụng cơ bản về Data binding trong Android

Hi! Xin chào mọi người^^ Hôm nay, rảnh rỗi sinh nông nổi nên mở máy viết 1 bài chia sẻ kinh nghiệm về lập trình Android cho những người mới^^ Do kiến thức của mình còn hạn hẹp nên bài viết chỉ mang tính chất chia sẻ và hướng tới những bạn mới học lập trình Android như mình. Vậy có chỗ nào sai xót ...

Trịnh Tiến Mạnh viết 4 tuần trước

Tìm hiểu và sử dụng Gulp JS

Chợt nhớ ra hôm nay mình có hẹn, vậy nên hôm nay mình sẽ giới thiệu đến bạn đọc bài viết về 1 công cụ khá bá đạo trong giới JS học đó là Gulp JS. Nào mình cũng tìm hiểu về Gulp nhé </p>
         <div class= Tạ Quốc Bảo viết 18:20 ngày 12/08/2018

Giới thiệu về cloud formation và cách sử dụng cơ bản

Cloud formation là gì? Cách dễ nhất để mô tả CloudFormation là nó là một công cụ từ AWS cho phép bạn khởi tạo tài nguyên một cách dễ dàng. Bạn xác định tất cả các tài nguyên mà bạn muốn AWS bật lên trong một bản thiết kế chi tiết, bấm vào một nút, và sau đó AWS sẽ thực hiện giúp bạn phần việc còn ...

Tạ Quốc Bảo viết 17:44 ngày 12/08/2018
0