Time of Update: 2018-12-08
上一次我們一起搞定了動畫的一些效果,在最後給出了一排蝴蝶的隨機扇動,今次我們一起研究一下互動元素的製作,完成初步能夠互動的環節,這些過程用Blend做,就變得非常快速和容易,今次我們一起研究如何使用Blend製作Silverlight的事件,來達到我們期望的選定以及打亂動畫的需求。現在,我們先調整一下前面的工程,將介面布局完成,然後放入一個命名為Target的蝴蝶控制項,用來標示到底哪個是要選擇的目標。現在將蝴蝶布置好,然後將他們都放置到一個Canvas當中,用Grid也可以,命名為Butter
Time of Update: 2018-12-08
Flyer04講過了如何產生敵人並且開始進行漂亮的“搖擺”,真正的困難才剛剛開始,因為現在主角是完全無敵的,那些什麼什麼東西必須對主角造成傷害才顯得有趣,對於遊戲中如何進行傷害判定是一個有趣的問題,要先解決的是如何判定是否碰撞,在這段當中,我們將完成碰撞的檢測以及生命值的減少,搏鬥現在就開始了。 在遊戲開發中,對於碰撞的檢測有很多,3D一般用射線判定法(Vector),而2D遊戲就不需要那麼複雜,雖然使用向量能作出最準確的判定,但是在一個平面中有更加簡便的解決方案,當然,這
Time of Update: 2018-12-08
以Flyer開頭我個人覺得有點唐突,因為本來打算Flyer系列只是一個遊戲,下一個開頭就是另外的遊戲開發,不過彷彿有更多的朋友喜歡繼續這個系列,加之新的遊戲和Fly有些關係,那麼就算在這一篇中吧,在Flyer開頭的時候,曾經說過飛行員這個遊戲是純粹用Code的方式實現,而未來會提供一個Blend開發遊戲的執行個體,那麼今天開始,我們將進入一個全新的系列中——Butterfly。 首先我們使用代碼開發出來的遊戲會發現很多問題: 1、需要思考和設計很長時間 2、開發過程不直觀 3、做動畫
Time of Update: 2018-12-08
在遊戲中,有一種情況是斜向移動,就是同步選取兩個方向,形成斜線操作,在Win32GDI開發中,可以通過在邏輯迴圈裡加入鍵盤狀態判斷取得多個鍵進行操作,但是在Silverlight中鍵盤的事件是單個的,不能取得多個鍵盤的狀態,園友提出一個問題,就是我的Flyer小遊戲只能上下左右控制,而不能斜向行動,今天我們來解決這個問題,實現八個方向的正確行為動作。針對這個解決方案初步的想法,對於鍵盤的輸入來說,可以使用一個隊列進行鍵盤狀態儲存,比如使用一個List儲存Key的狀態,然後在KeyUp的時候釋放掉
Time of Update: 2018-12-08
這是一篇暴力的內容,所講之主題雖然可以為Silverlight遊戲開發解決一些問題,但是同樣也會帶來新的其他問題,於是,有意思的事情出現了,到底該怎麼選擇呢?還是依據你的項目進行選取吧,本文純粹使用代碼方式編程,請準備好Visual
Time of Update: 2018-12-08
接上回所述,咱們的飛行員已經開始往下飄落了,但是似乎少點什麼,所謂沒有危險那裡來的樂趣,所以要增加一個敵人來搞定為主角造成點難度,本篇作為無聊,只是說了一些廢話,重複了前幾篇的代碼,只是不過稍微做了一些修改,廢話少說,直接: 我們看到和上次相比,增加了兩個部分,一個是零件堆,一個是血條,首先我們先完成血條的部分,這部分代碼如下: Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-08
說明:素材來源於網路,著作權歸著作權人所有 遊戲中的精靈非常常用,spirit這個小玩意具體誰發明的不得而知,從遊戲開發的角度上,精靈可以協助開發人員便捷的完成開發工作,Silverlight基於MVC體系,控制項就成了遊戲開發人員們理想的精靈,然而,具體用什麼來構成精靈的基礎,讓我們來研究一下。 在那之前,我們先準備一下素材,一組足夠長的動畫資源: Silverlight提供了如下容器:Grid、Canvas、StackPanel、Border、Scroll
Time of Update: 2018-12-08
Time of Update: 2018-12-08
本來我是想將這個五子棋寫成一個系列,分別從介面製作,到背景代碼實現完成它,結果發現時間確實緊張,只好將它們簡單的結合到一起,實際上這個遊戲完成的比較早,很早以前就有了,結果時過境遷竟然給忘記,實在不應該,使用Silverlight來實現這樣的遊戲非常容易,只需要使用Blend這樣的工具將介面畫的漂亮一點,然後使用C#就可以實現互動邏輯。五子棋的核心演算法使用了以前用C++寫的邏輯,有點複雜,但是智能卻不高,也是為了偷個懶,直接複用了,從這一點可以看出來,C#對於C++的代碼複用是很方便的,只是一
Time of Update: 2018-12-08
一直到現在,咱們做的都是一個沒有開始的遊戲,全部都是直接進入到遊戲迴圈當中,那麼今天,我們一起搞一個介面實現一個有開始過程的遊戲,在後面的附件中提供了原始碼,以及圖片資源,先看看最終的實現效果:點擊【開始遊戲】按鈕以後,才進入到遊戲,我們首先要實現這個介面,建立一個ClassStartInterface類,用來處理開始介面,並且了方便控制,在MainPage中加入一個MainPage類的靜態變數,方便全域訪問,比如這樣寫public static MainPage
Time of Update: 2018-12-08
用Silverlight作粒子效果看起來還是不錯,從上一篇的回複中我想到了很多,並不是只是局限於遊戲,其他應用上也是非常好用的,今次帶來一個小小的粒子控制系統,能夠達到非常有趣的效果,各位高手稍加改造就能做成一個粒子控制系統,說到這裡,是否可以用這個做一個養魚的遊戲呢?:)代碼在這裡:點擊下載控制台提供了一些參數可以隨便修改,具體的製作方法請直接參看代碼,沒什麼技術含量,用Blend或者VS2010調整介面布局。滑鼠跟隨的效果,用圖片的產生的雲霧效果,哈哈,看上去像不像遊戲中毒霧呢,下面的效果是
Time of Update: 2018-12-08
Flyer02最後,我們得到了一個螢幕,上面有雲彩向上飄去,但是很容易發現有一個很明顯的瑕疵,就是雲彩不會限定在一個畫面中,那麼能不能控制在一個指定的範圍內呢。Sivlerlight中限定一個UIElement的邊界,可以使用Clip來實現,在能夠顯示圖片主視窗元素上添加如下代碼: Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-08
本文只有兩個主題:1、遊戲設計清晰的必要2、迴圈邏輯的代碼設計 遊戲設計:未寫代碼先設計,這是一個非常重要的建議,如果在寫代碼前還不知道要開發一個什麼遊戲,那麼會遇上很多問題,這些問題包括:代碼編寫異常艱難半路重構工作量無法估計預算嚴重超支……如果第一次開發遊戲,那麼就容易有兩種情況,第一,遊戲就那樣還用的著設計嗎,第二,無從下手,到底該怎麼設計,第一種肯定考慮不周全,這是大多數情況,第二種比第一種更悲慘,啟示無論那種情況,把問題羅列出來,到一起回答就可以解決很多,比如說,可以嘗試回答如下問題:
Time of Update: 2018-12-08
前面的Flyer01說過,用Silverlight開發遊戲可以通過代碼方式和Blend開發工具完成,Blend的視圖開發環境和Flash的很像,但是更加強調是程式結合,從不怎麼明顯的動畫軸就知道,而Silverlight也不是和Flash一樣離開了開發工具就完全不能開發,我打算通過這個簡陋的例子讓朋友知道,如何只用代碼的方式開發一個Silverlight遊戲。 一,需要一個環境,這個可以在這篇中找到答案Silverlight C# 遊戲開發:Silverlight開發環境
Time of Update: 2018-12-08
遊戲開發一直都是一個神秘的學科,無論圖書大廈裡的設計書籍還是網路上的開發攻略,無不讓人望而卻步,冗長的代碼以及高深的言語,使得遊戲開發愛好者們造成各種各樣的誤解,很長一段時間,都誤認為遊戲開發就是DirectX、就是Opengl、就是……,這種觀念從招聘中就能看得到,少有真正理解遊戲開發,那麼遊戲開發確實是一個很複雜的學問嗎?其實不是,它本身就是一個簡單的構成。
Time of Update: 2018-12-08
Time of Update: 2018-12-08
相比於技術文章而言,本索引中包含的都是獨立的項目,爭取按照每個獨立的項目開發來編寫系列,全部為原創,開發過程可能語無倫次,可能相當幼稚,當然了,方式方法可能各有不同,我們一起向夢想的方向前進,無所謂有什麼方式了,但是,這一路風景是最美的,不是嗎:) 非常佩服深藍色右手,他的50篇連載的教程幾乎是一本完整的教科書,這是一位父親對另外一位父親的中肯之贊。 本索引中的文章均是原創,如果需要轉載請註明出處。 《飛行員迫降》Silverlight C#
Time of Update: 2018-12-08
熟悉 Android 與 Linux 的開發人員看到這篇弱弱的文章該會嘲笑了,不過這篇文章是寫給那些還不知道的開發人員的。當然如果你對此比較熟悉,又打算看下去,我會感到很高興的。:)眾所周知,Android 是基於 Linux 的,因此大家都可以想到,Android 應該可以運行 Linux 下的程式,但是該平台是採用的 ARM 的處理器,因此哪裡去找一款 ARM Linux 的編譯器呢?這裡我向大家推薦 Sourcery G++
Time of Update: 2018-12-08
很多C#開發人員在做尋找操作的時候喜歡用'Where'操作並通過'First'擷取第一次出現的記錄。這樣的操作是不對的。因為'First'操作不會在 'Where'條件中起到作用。而且,這樣也不能確保記錄一定被找到。如果'First'在沒有記錄返回的操作中使用,系統會返回預設值並且沒有任何異常 被拋出。//錯誤的寫法List numbers = new List(){1,4,5,9,11,15,20,21,25,34,55};return numbers.Where(x =>
Time of Update: 2018-12-08
相關內容:C++實現char*轉BSTR的5個方法 C++實現BSTR轉char*的2個方法 C++實現ANSI編碼和Unicode編碼互轉C++實現UTF-8編碼和Unicode編碼互轉C++編碼轉換通用類,供大家參考。head檔案wide_string.h內容如下:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/* *