|
斗地主風(fēng)靡了大江南北,在春晚都做免費(fèi)性推廣,棋牌游戲平臺(tái)幾乎將其作為標(biāo)配,但是牌類(lèi)游戲總是一成不變的樣子——橫向排列,如果扇形排列應(yīng)該更加符合真實(shí),最近在WP7上玩了一個(gè)UNO游戲就是用扇形排列,感覺(jué)很不錯(cuò),今天咱們照貓畫(huà)虎,在Silverlight上實(shí)現(xiàn)一個(gè)扇形的手牌效果。
可能看到這個(gè)預(yù)覽圖有的朋友就會(huì)笑了,這個(gè)可以使用RenderTransform實(shí)現(xiàn),前面有講過(guò),只需要將RenderTransformOrigin的原點(diǎn)設(shè)置在牌外面就行,然后旋轉(zhuǎn),這樣實(shí)現(xiàn)倒是可以,可是算起來(lái)實(shí)在麻煩,要考慮牌數(shù)和位置,今天不是炒冷飯,而是使用PathListBox來(lái)實(shí)現(xiàn),PathListBox在Silverlight的標(biāo)準(zhǔn)SDK中是沒(méi)有的,它是Blend的一個(gè)擴(kuò)展控件,用來(lái)實(shí)現(xiàn)路徑動(dòng)畫(huà)等效果。
現(xiàn)在先建立一張牌的控件,這次不用新建,首先在畫(huà)布上畫(huà)好,如下圖:
選擇繪制出來(lái)的元素,點(diǎn)擊鼠標(biāo)右鍵選擇制作成用戶(hù)控件的選項(xiàng):
這樣就會(huì)制作好了一個(gè)自定義的控件,此做法可以省去定大小等麻煩,如下圖:
現(xiàn)在我們添加一個(gè)用戶(hù)自定義控件到MainPage看看效果,你需要在Asset(資產(chǎn))中找到這個(gè)用戶(hù)控件,如果沒(méi)有則需要編譯一下:Ctrl+Alt+B
現(xiàn)在繪制一個(gè)圓形,在工具中選擇Ellipse:
看好規(guī)定好的路徑,繪制好位置之后,將這個(gè)圓形變成Path路徑,然后在工具欄中選擇Direct Selection,選擇下面的兩條線,這兩條線是我們所不需要的,所以直接按Del按鈕刪除掉:
選定Path,點(diǎn)擊鼠標(biāo)右鍵選擇制作成為L(zhǎng)ayout Path功能,這個(gè)其實(shí)是一個(gè)快捷方式,如果正常操作需要引用dll然后添加對(duì)應(yīng)的控件,我這里以簡(jiǎn)單的方式完成:
PathListBox此時(shí)就會(huì)出現(xiàn)在布局中了,并且下面的Path也添加到PathListBox做路徑的基礎(chǔ)。
現(xiàn)在拖動(dòng)Card控件到PathListBox中,你會(huì)發(fā)現(xiàn)牌已經(jīng)到了最開(kāi)始的點(diǎn)了:
下面選定PathListBox,把參數(shù)設(shè)置成如下:
現(xiàn)在復(fù)制幾個(gè)Card出來(lái)看看效果吧,怎么樣,很不錯(cuò)吧。
但是這個(gè)排列仍然覺(jué)得別扭,調(diào)整Path就可以達(dá)到你的目標(biāo),可是有更好的方法來(lái)解決,把參數(shù)調(diào)整成下面的參數(shù):
就是說(shuō)開(kāi)始的點(diǎn)在30%,而結(jié)束的點(diǎn)在40%,你可以動(dòng)態(tài)調(diào)整一下,看看效果,非常棒,弄成動(dòng)畫(huà)就更有意思了:)
最后把黑線去掉,這樣看起來(lái)就更加自然了:
選擇Path把Stroke的顏色畫(huà)筆設(shè)置為沒(méi)有。
好了現(xiàn)在已經(jīng)完成,我為Card做了一個(gè)小動(dòng)畫(huà)看起來(lái)更加有趣,在這個(gè)小技巧的基礎(chǔ)上,相信各位能擴(kuò)展更多的玩法出來(lái),今天就到此為止吧:)
本篇工程源代碼下載地址如下:點(diǎn)擊直接下載
NET技術(shù):Silverlight 游戲開(kāi)發(fā)小技巧:扇形排列元素,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。