2012-03-14 30 views
7

Kỹ thuật tốt nhất để chia tỷ lệ một sprite thành kích thước chính xác là gì. Thuộc tính scale là một số nhân, nhưng nếu bạn muốn một sprite chính xác là x pixel, thì có một kỹ thuật đơn giản không? Hoặc, nó sẽ đòi hỏi chỉ cần sử dụng kích thước mong muốn và các sprites thực tế contentsize để tính toán hoạt động cần thiết scale?Quy mô CCSprite với kích thước chính xác

+0

Thành thực mà nói, tôi đã luôn luôn được tiến hành theo đề nghị của bạn (tính scaleX và scaleY), không tìm kiếm câu trả lời khác. Tôi sẽ chỉ thêm câu hỏi này như là một yêu thích, xem những gì các nhà khoa học nạo vét lên như một câu trả lời. – YvesLeBorg

+1

Tính toán hệ số nhân với kích thước mới và kích thước hiện tại là cách duy nhất để đi (hoặc bạn luôn có thể tạo phương thức cho điều đó) vì nội bộ, cocos2d chỉ gửi các giá trị 'scaleX' và' scaleY' tới hàm 'glScalef' openGL khi đó là thời gian để vẽ sprite. – Lukman

Trả lời

19

tôi tin rằng công trình này:

-(void)resizeSprite:(CCSprite*)sprite toWidth:(float)width toHeight:(float)height { 
    sprite.scaleX = width/sprite.contentSize.width; 
    sprite.scaleY = height/sprite.contentSize.height; 
} 

Đặt nó trong trò chơi của bạn, và sử dụng như thế này:

[self resizeSprite:mySprite toWidth:350 toHeight:400]; 
0

Bạn có thể sử dụng hai thuộc tính sau: scaleX và scaleY. Ví dụ: , sử dụng trong Thanh HP.

hpBarSprite.scaleX = hpCurrent/hpMax;

+0

tôi nghĩ rằng bạn có nghĩa là tối đa/hiện tại, phải không? – johnbakers

+0

Đối với một thanh, nó phải là '((1.0/max) * hiện tại)' từ 1.0 là 100%. – Voldemort

Các vấn đề liên quan