Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ
Trang Chủ Giới Thiệu Chương Trình Học Tài Liệu Tin Tức F.A.Q Lịch Khai Giảng Học Phí Việc Làm Liên Hệ

Go Back   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ > WEB - ĐỒ HỌA - LẬP TRÌNH > LẬP TRÌNH iOS
Đăng Ký Thành Viên Thành Viên Lịch Ðánh Dấu Ðã Ðọc

LẬP TRÌNH iOS THIẾT KẾ ỨNG DỤNG, GAME TRÊN IPHONE, IPAD, IPOD

Vui lòng gõ từ khóa liên quan đến vấn đề bạn quan tâm vào khung dưới , trước khi đặt câu hỏi mới.


Trả lời
 
Ðiều Chỉnh
  #1  
Old 09-07-2012, 15:28
duong1521991 duong1521991 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: May 2012
Tuổi: 22
Bài gởi: 17
Thanks: 0
Thanked 6 Times in 2 Posts
Game-Máy-Quay-Thú-Sử dụng UIPickerView

http://www.youtube.com/watch?v=vhgdo8UCVVQ



Em mới làm ! còn nhìu chỗ chưa được chuẩn ! nhất là chỗ kiểm tra thắng thua nếu 2 con thì sao còn 3 con thì sao , chỗ đó còn lỗi !
__________________
Khổng Châu Dương
Email: duong1521991@gmail.com
blog: khongchauduong.wordpress.com

thay đổi nội dung bởi: o0o_khoaphp_o0o, 09-07-2012 lúc 15:37
Trả Lời Với Trích Dẫn
Sponsored links
  #2  
Old 20-07-2012, 11:04
duong1521991 duong1521991 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: May 2012
Tuổi: 22
Bài gởi: 17
Thanks: 0
Thanked 6 Times in 2 Posts
Một số bạn có gửi mail hỏi mình cách làm game này , nhưng do bận nhiều việc qua nên chưa có tg làm 1 bài hướng dẫn . Hôm nay mình làm bài hướng dẫn CƠ BẢN cho các bạn về lớp UIPickerView cụ thể là game đua thú :
Để làm game này , ngoài cơ bản về UIPickerView ( các bạn có thể xem trên developer.apple.com/ios ) thì có 1 số điểm cần quan tâm để các bạn có thể customize cái UIPickerView :
  1. Làm sao để đưa hình vào UIPickerView
  2. Làm sao để làm cho UIPickerView chạy mà ko cần phải vuốt nó
  3. Làm sao để tạo cảm giác UIPickerView quay thật nhiều , vì UIPickerView của chúng ta chỉ có 5 con thú , trong khi bạn nhấn nút quay thì nó sẽ quay mấy chục vòng !

Thứ 1 :Đưa hình vào UIPickerView :
Bình thường khi ta muốn Pickerview hiện ra Text thì ra override hàm này :

PHP Code:
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
 

 
    return [
mang objectAtIndex:row%6];
 } 
với kiểu trả về là NSString
Vậy muốn picker hiện ra hình ta override hàm :
PHP Code:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
          forComponent
:(NSInteger)component reusingView:(UIView *)view
{
    
    
    
    
    
UIImageView *heo = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"babycow.png"]];
    
heo.frame CGRectMake(005050);
    
UIImageView *gau = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bear.png"]];
    
gau.frame CGRectMake(005050);
    
UIImageView *ong = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bee.png"]];
    
ong.frame CGRectMake(005050);
    
UIImageView *ketxanh = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"blueparrot.png"]];
    
ketxanh.frame CGRectMake(005050);
    
UIImageView *chimcanhcut = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"penguine.png"]];
    
chimcanhcut.frame CGRectMake(005050);
    
UIImageView *chimxanh = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"tweetie.png"]];
    
chimxanh.frame CGRectMake(005050);
    
mang = [[NSArray alloc]initWithObjects:heo,gau,ong,ketxanh,chimcanhcut,chimxanhnil];
        
    if (
component == 0) {
        
        return [
mang objectAtIndex:row%6];
        
    }
    if (
component == 1) {
        return [
mang objectAtIndex:row%6];
    }
    if (
component == 2) {
        return [
mang objectAtIndex:row%6];
    }
    
    return 
0;
    

Hàm này trả về một đối tượng UiView , nên muốn chèn hình vào thì bạn cho return 1 đối tượng UIImageView (ko phải UIImage nha ) , hoặc có thể là button v.v.v miễn nó kế thừa từ UIView !
Tại sao lại là row%6 sẽ giải thích ở phần cuối !
Thứ 2 : Để làm cho picker nhảy mà ko cần vuốt , UIPickerView hỗ trợ cho ta 2 hàm sau
PHP Code:
[mypickerview selectRow:dong_nao inComponent:thuoc_component_nao animated:YES];
    
    [
mypickerview reloadComponent:thuoc_component_nao]; 
Ví dụ : đang ở dòng 3 thuộc component 0 , bạn gọi hàm thứ nhất truyền vào dòng 4 component 0 sau đó gọi hàm thứ 2 để load lại component 0 thì picker của bạn sẽ nhảy đến vị trí dòng 4 . Bạn nhớ cho animated là YES mới có hiệu ứng nha !

Cuối cùng : Làm sao để tạo cảm giác UIPickerView quay thật nhiều

Đơn giản thôi : cho số lượng dòng trong mỗi component là 10.000 dòng chẳng hạn
PHP Code:
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 

    
    if (
component == 0) {
        
        return 
10000;
        
    }
    if (
component == 1) {
        return 
10000;
    }
    if (
component == 2) {
        return 
10000;
    } 
    return 
;

Nhưng quan trọng là mình chỉ có 1 mảng 5 con thú với index là từ 0 tới 5 vậy nếu ở dòng thứ 2000 làm sao tôi lấy ra phần tử trong mảng ra được ! Bạn lấy dòng đó % cho 6 là xong :
PHP Code:
if (component == 0) {
        
        return [
mang objectAtIndex:row%6];
        
    }
    if (
component == 1) {
        return [
mang objectAtIndex:row%6];
    }
    if (
component == 2) {
        return [
mang objectAtIndex:row%6];
    } 
Vậy là xong ! Game của mình đơn giản chỉ có vậy ! còn xét cho quay nhanh chậm ra sao là tùy vào giải thuật của mỗi người !hehe!
Chúc các bạn học thật tốt !
À Các bạn ko học tại nhất nghệ hoặc các bạn bên Android có thể xem topic của thầy Khoa về UIPickerView để hiểu thêm nha !
__________________
Khổng Châu Dương
Email: duong1521991@gmail.com
blog: khongchauduong.wordpress.com
Trả Lời Với Trích Dẫn
Đã có 2 người gửi lời cảm ơn duong1521991 vì bài viết hữu ích này:
  #3  
Old 21-07-2012, 16:35
mankichi4589 mankichi4589 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Jan 2010
Tuổi: 23
Bài gởi: 15
Thanks: 10
Thanked 9 Times in 8 Posts
Thanks bạn, lâu lâu mới có người post bài
P/s : quay nhanh hay chậm mình nghĩ sử dụng bài NSTimer của thầy Khoa http://nhatnghe.com/forum/showthread.php?t=388759 ^^!.
Mình đã thử quay cũng được ak http://www.youtube.com/watch?v=G8lifY0b_1o
__________________
Đừng nghĩ bạn được bao nhiêu điểm. Đừng nghĩ bạn học ở trường nào. Đừng nghĩ bạn tốt nghiệp loại gì. Hãy nghĩ: MÌNH CÓ GÌ TRONG ĐẦU!
-- Nguyễn Tuấn Anh -- Phone : 0908927898 --
-- Email : nguyentuananh240590@gmail.com --
Trả Lời Với Trích Dẫn
  #4  
Old 21-07-2012, 16:39
duong1521991 duong1521991 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: May 2012
Tuổi: 22
Bài gởi: 17
Thanks: 0
Thanked 6 Times in 2 Posts
Uhm ! mình cũng xài NStimer ! Nhưng quan trọng là làm sao cho nó quay thật là mượt !
__________________
Khổng Châu Dương
Email: duong1521991@gmail.com
blog: khongchauduong.wordpress.com
Trả Lời Với Trích Dẫn
Sponsored links
Trả lời

Bookmarks

Ðiều Chỉnh

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
[Tutorial] Tổng hợp vài game điện thoại hay (sưu tầm) phamquangit Quản Lý Phòng Internet - Games 1 01-02-2013 11:23
G-Cafe phần mềm update game tốt nhất hiện nay thanhcapi Quản Lý Phòng Internet - Games 0 19-05-2012 22:59
[Help] Cần giúp về đề tài tốt nghiệp Mã hóa và chứng thực Window Server 2003 NTMP_38313 Network Infrastructure 7 04-06-2011 01:32
[Discuss] Ứng dỤng active directory cs cho doanh nghiỆp tuntunni1988 Server Management 0 28-04-2011 16:49



Múi giờ GMT +7. Hiện tại là 08:01
Powered by: vBulletin Version 3.8.7
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Ad Management by RedTyger