C# 學習 第一章 C# 4.0 初步體驗

C# 語言:C#是一個物件導向的程式設計語言。是針對.Net Framework 平台開發的語言,C#語言編寫出來的代碼總是在.Net Framework平台上啟動並執行。.Net Framework 是什麼:是微軟為了開發應用程式而建立的一個富有革命性的一個新平台。.Net Framework 定義了.Net 應用程式開發和運行環境,包括 .Net 應用程式中使用的類庫。類似於Java的虛擬機器。開發人員可以在此平台或者環境下位各種平台和裝置編寫應用程式。 .Net

正確的C++記憶體分區

前置:作為一個C++的菜鳥,一直對C++的記憶體分區比較暈乎,網路上的分配方式各式各樣,讓人看得雲裡霧裡。網路上有一種分區,將C++記憶體分為:堆區、棧區、自由儲存區、全域/靜態儲存區和常量儲存區。個人認為這是完全錯誤的記憶體劃分方式,誤導我這樣的菜鳥。鑒於此,我尋找資料,整理出以下的結論。真正合理的C++的記憶體劃分為棧區、堆區、全域區/靜態區、字串常量和代碼區。這裡去掉自由儲存區,增加了代碼區,理由會在下面講到。棧區:由系統進行記憶體的管理。說明:主要存放函數的參數以及局部變數。棧區由系統進

C++中建構函式調用與申明方式的關係

C++中,對於自訂的類比如GCStudent,需要聲明並且初始化一個對象。GCStudent stu;GCStudent stu1 = stu;對於第一個stu的聲明,系統肯定會去調用系統預設的建構函式。但是對於第二個stu1,系統調用的建構函式並不是系統預設的建構函式,而是調用拷貝建構函式。 但是如果我們這樣聲明GCStudent stu;GCStudent stu1;stu1 = stu;這個時候stu1和stu2都調用預設的建構函式,在stu1賦值的時候,調用系統的等號運算子多載。其原理,

C++關鍵字

C++關鍵字asmdoublenewswitchautoelseoperatortemplatebreakenumprivatethiscaseexternprotectedthrowcatchfloatpublictrycharforreturntypedefclassfriendregisterunionconstgotoshortunsignedcontinueifsignedvirtualdefaultinlinesizeofvoiddeleteintstaticvolatiledolo

關鍵字typename(針對C++)

如果你有一個合適的名字來指定一個類型,並且這個名字依賴於模板的參數,請使用關鍵字 typename。在模板的聲明和定義中只使用關鍵字typename。下面的例子說明使用關鍵字typename。1 template<class T> class A2 {3 T::x(y);4 typedef char C;5 A::C d;6 } 運算式 T::x(y) 是含糊不清的。它可能是一個調用非本地參數值 y 的函數 x() ,也可能是一個宣告類型為 T::x 的變數

非類型模板參數(針對C++)

非類型模板參數格式和聲明一個下面的類型是一樣的。整型或枚舉指向一個對象或一個函數引用到一個對象或函數指向一個成員把非類型的模板參數聲明為一個數組或者函數,將分別被轉換到成指標以及指向函數的指標。下面的例子示範這些:1 template<int a[4]> struct A {};2 template<int f(int)> struct B {};3 4 int i;5 int g(int) {return 0;}6 7 A<&i> x;8 B<

C# 參考型別作為函數參數時

在探討本文的主題之前,先來介紹下C#中的實值型別和參考型別眾所周知C#中有實值型別和參考型別,實值型別有基礎資料類型(諸如int,double,bool等)、結構體、枚舉,參考型別有介面、類、委託。實值型別全部在作業系統的棧空間中申請,而參考型別則在作業系統的堆空間中建立對象,然後在棧空間中申請一個指標指向這個對象的地址。因此C#的參考型別其實就如同C++的指標類型。 下面我再來看看函數傳參的問題。早在C時代就有函數參數傳值和傳地址的概念,請記住在C#中函數參數預設都是傳值。對於實值型別,函數是

繼承(針對C++)

繼承是一個重用和擴充現有類而無需修改該類的機制,從而在兩者之間形成層級關係。繼承差不多是吧一個對象嵌入到另外一個對象。假設你在類 B 的定義中聲明類 A 的一個對象 x 對象,結果,類 B 將能夠訪問類 A 所有的公用的資料成員以及成員函數。然而,在類 B 中,你想要訪問類 A 的所有的公用資料成員以及成員函數,需要通過類 A 的對象 x。 下面的例子樣本這些: 1 #include <iostream> 2 using namespace std; 3 4 class A { 5

LINQ之路 2:C# 3.0的語言功能(上)

在上一篇的LINQ介紹中,我們已經看到了隱式類型變數var,擴充方法(extension method)和lambda運算式的身影。沒錯,他們正是LINQ技術的基石,是他們讓LINQ的實現成為可能,並且簡化了LINQ運算式的書寫。在這一篇中,我將和大家一一探討C#3.0在語言功能上所作的努力,包括:隱式類型局部變數、自動屬性和匿名型別。 隱式類型局部變數C#是強型別語言,意味著我們在聲明變數時必須指定變數的具體類型,比如: static void

Silverlight C# 遊戲開發:L4 模型組和簡單的動畫

前面我們已經完成了基本模型和自訂模型匯入,你會發現每次都通過代碼來添加一堆模型確實很麻煩,在Balder中可以使用Geometry做模型組,將各種各樣的模型添加到其中,這次我們簡單的一起來研究一下模型組,加上一個小小的動畫,如果這篇你看明白了,那麼就可以使用這個引擎開發出一個簡單的遊戲,期待你的成果。最先我們還是從建立一個控制項開始,請建立一個控制項開啟其中的.cs檔案,增加代碼變成下面的樣子,Code highlighting produced by Actipro

Silverlight C# 遊戲開發:Balder的3D世界

在今年早些時候,我們的群裡流傳著一本書《3D games development with Microsoft Silverlight

Silverlight C# 遊戲開發:L3 遊戲的3D空間

在初中數學中我們學到過平面座標系統(笛卡爾座標系),2D的座標系最好理解,它只有兩個軸,用來表示的數字相當簡單,3D的空間比2D多了一軸,但是卻多出了很多2D空間沒有的概念。有趣的是,2D空間的很多概念卻是3D空間的基礎,通過推論得到3D空間的結論。3D座標系有一個很重要的概念是左右手的座標系定義,決定了軸向的正負方式,在不同的領域中是完全不同的,如果將一個左手座標系製作出來的3D模型放在一個右手座標系中,那麼他們的左右是相反的,來自《3D數學基礎》對左右手座標系有了一個比較清晰的表示:我看過D

Silverlight C# 遊戲開發:草動系統(三)手到草動

隨風而動是一種感覺,能夠很好的展現就已經可以,很多朋友提出了各種方法可以使得隨風而動更加自然,相信都能夠實現,而且效果比我的還好,寫此文之目的就是開拓一下思路,能夠用一些簡單的方法,組合出來讓人興奮的效果,而這次,咱們讓草跟著滑鼠而動,彷彿是有一個無形的手在撥開草叢:)這次我們仍然還是使用網格的區塊劃分,判定滑鼠的經過路線,然後對草產生撥動的邏輯,請參看:這樣看起來好像很簡單,同樣還是為了增加效率,只是對應網格上的草才會執行邏輯,滑鼠移動那裡就會觸發,我管這個叫觸動(touch),所以為了達到相

Silverlight C# 遊戲開發:L9 天空盒

在前面的篇節中,基本上完成了一個Silverlight3D世界的構建,此時只需要一些邏輯和代碼就可以完成完整的遊戲,而今天我將最後一個部分補充:天空盒(SkyBox)。說到天空盒,以前學過D3D的朋友一定不陌生,其實就是六面方盒子,使用透視錯覺產生是一個球形。 從可以想想,由6張圖片可以組合封閉空間,所以先準備上面的這樣的一張圖,我直接從別的地方借來了6張標準的SkyBox圖片,關於SkyBox的圖片可以請3D美術師協助,或者藉助網路資源,另外,有一些專門製作天空盒的軟體。最先需要準備圖片,把他

Silverlight C# 遊戲開發:Flyer10完成”尋找”工作

上一次我們一起搞定了動畫的一些效果,在最後給出了一排蝴蝶的隨機扇動,今次我們一起研究一下互動元素的製作,完成初步能夠互動的環節,這些過程用Blend做,就變得非常快速和容易,今次我們一起研究如何使用Blend製作Silverlight的事件,來達到我們期望的選定以及打亂動畫的需求。現在,我們先調整一下前面的工程,將介面布局完成,然後放入一個命名為Target的蝴蝶控制項,用來標示到底哪個是要選擇的目標。現在將蝴蝶布置好,然後將他們都放置到一個Canvas當中,用Grid也可以,命名為Butter

Silverlight C# 遊戲開發:草動系統(二)隨風而動

上一個草動效果是完全的隨機搖擺效果,並沒有特定的規律,看起來不是很自然,在實際的遊戲進行過程當中,玩家並不太注意是否真的和現實世界一模一樣,但是作為開發人員,沒有理由拒絕極致,這一次咱們一起做一個風吹過的草動效果。真實中的風動效果,如下,是一種類似波動的形象,當然了,風完全看不到,那麼為了達到這個效果,應該從一個方向吹過,然後產生搖擺。問題來了,如何知道風碰到了那些草,可能最簡單的方式是遍曆一下所有的草,看看合格就執行一下動畫,但是效率不可恭維,當螢幕上超過一定數量草的時候,每次的遍曆絕對是一個

Silverlight C# 遊戲開發:Flyer08用Blend做一個新遊戲

  以Flyer開頭我個人覺得有點唐突,因為本來打算Flyer系列只是一個遊戲,下一個開頭就是另外的遊戲開發,不過彷彿有更多的朋友喜歡繼續這個系列,加之新的遊戲和Fly有些關係,那麼就算在這一篇中吧,在Flyer開頭的時候,曾經說過飛行員這個遊戲是純粹用Code的方式實現,而未來會提供一個Blend開發遊戲的執行個體,那麼今天開始,我們將進入一個全新的系列中——Butterfly。  首先我們使用代碼開發出來的遊戲會發現很多問題:  1、需要思考和設計很長時間  2、開發過程不直觀  3、做動畫

Silverlight C# 遊戲開發:資源的處理,映像演算法(一)

  這是一篇暴力的內容,所講之主題雖然可以為Silverlight遊戲開發解決一些問題,但是同樣也會帶來新的其他問題,於是,有意思的事情出現了,到底該怎麼選擇呢?還是依據你的項目進行選取吧,本文純粹使用代碼方式編程,請準備好Visual

Silverlight C# 遊戲開發:Flyer11殭屍五子棋

本來我是想將這個五子棋寫成一個系列,分別從介面製作,到背景代碼實現完成它,結果發現時間確實緊張,只好將它們簡單的結合到一起,實際上這個遊戲完成的比較早,很早以前就有了,結果時過境遷竟然給忘記,實在不應該,使用Silverlight來實現這樣的遊戲非常容易,只需要使用Blend這樣的工具將介面畫的漂亮一點,然後使用C#就可以實現互動邏輯。五子棋的核心演算法使用了以前用C++寫的邏輯,有點複雜,但是智能卻不高,也是為了偷個懶,直接複用了,從這一點可以看出來,C#對於C++的代碼複用是很方便的,只是一

Silverlight C# 遊戲開發:絢麗的粒子特效-粒子效果(二)

用Silverlight作粒子效果看起來還是不錯,從上一篇的回複中我想到了很多,並不是只是局限於遊戲,其他應用上也是非常好用的,今次帶來一個小小的粒子控制系統,能夠達到非常有趣的效果,各位高手稍加改造就能做成一個粒子控制系統,說到這裡,是否可以用這個做一個養魚的遊戲呢?:)代碼在這裡:點擊下載控制台提供了一些參數可以隨便修改,具體的製作方法請直接參看代碼,沒什麼技術含量,用Blend或者VS2010調整介面布局。滑鼠跟隨的效果,用圖片的產生的雲霧效果,哈哈,看上去像不像遊戲中毒霧呢,下面的效果是

總頁數: 4314 1 .... 1469 1470 1471 1472 1473 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.