2011-06-28 161 views
2

我有一個以4/3比率運行的cocos2D應用程序,我想要進入全屏模式,調整視圖大小以保持縱橫比而不在屏幕邊顯示黑條。所以,當應用程序進入全屏,我這樣做:在一個窗口中居中MacGLView

NSRect aFrame=[[NSScreen mainScreen] frame]; 
[glView_ setFrameSize:NSMakeSize(aFrame.size.width,aFrame.size.height*1.2)]; 

這樣,我得到了全屏寬,但(我想)的比率不變。我現在的問題是glview不在屏幕上居中。它從左下角延伸出來,所以我得到了不均勻的剪輯(所有剪輯都在頂部完成)。我試圖用[glview setFrameOrigin]和類似的方法來選擇視圖的可見部分而沒有成功。

我只想取代我的視圖一定數量的像素,因此它顯示整個視圖的中心區域。可能嗎?。

感謝您的建議。

回答

0

您正在更改glView_的尺寸,但不是其原點。

NSRect aFrame=[[NSScreen mainScreen] frame]; 

CGFloat x = 0.0f; 
CGFloat y = aFrame.size.height; 
CGFloat width = aFrame.size.width; 
CGFloat height = aFrame.size.height * 1.2f; 

glView_.frame = NSRectFromCGRect((CGRectMake(x, y/2 - height/2, width, height)); 
+0

太棒了!非常感謝你。它完美的作品。我不得不將最後一行改爲:'glView_.frame = NSRectFromCGRect(CGRectMake(x,y/2 - height/2,width,height));'順便說一句。 – rmvz3

+0

哦,對。對,對不起。太多時間在椰子地上。更新。 –