自定義游戲鼠標(biāo)光標(biāo)
上一篇我們講了在游戲中使用系統(tǒng)默認(rèn)鼠標(biāo),這一篇我們來(lái)講講如何在游戲中使用自定義鼠標(biāo)。
首先我們需要一張透明背景的png圖片,鼠標(biāo)箭頭指向左上角頂點(diǎn)位置。尺寸大小為32×32像素。如圖:

各位可以右鍵圖片另存為并重命名為MouseCursor.png。然后將該png圖片拷貝到【HelloWorld.XNAContent】項(xiàng)目中。選中MouseCursor.png右鍵屬性,將圖片的AssetName改為MouseCursor。Content Importer為T(mén)exture-XNA Framework,Content Processor為T(mén)exture-XNA Framework (默認(rèn)無(wú)需修改)

打開(kāi)Game1.cs文件,找到【Color backgoundColor;】在它下面定義一個(gè)鼠標(biāo)的2D紋理和一個(gè)鼠標(biāo)位置

找到【Game1()】構(gòu)造方法,在方法體內(nèi)將【IsMouseVisible = true;】改為【IsMouseVisible = false;】

找到【LoadContent()】方法,在方法體內(nèi)加入

加載鼠標(biāo)紋理文件,【“MouseCursor”】就是前面定義的Asset Name
找到【Update(GameTime gameTime)】方法,由于前面已經(jīng)定義了鼠標(biāo)狀態(tài),只需要加入

定義鼠標(biāo)移動(dòng)的位置,Vector2是一個(gè)二維坐標(biāo)。游戲界面左上角頂點(diǎn)為0,0,向右是x軸遞增,向下是y軸遞增。mouseState.X和mouseState.Y就是鼠標(biāo)移動(dòng)到游戲界面中的坐標(biāo)。
最后找到【Draw(GameTime gameTime)】方法,在【spriteBatch.End();】前面輸入

由于spriteBatch.Begin存在層次關(guān)系,后畫(huà)會(huì)覆蓋前畫(huà),鼠標(biāo)必須在最頂層,所以要放在最后即【spriteBatch.End();】前一行。spriteBatch.Draw的第一個(gè)參數(shù)是鼠標(biāo)二維紋理圖,第二個(gè)參數(shù)表示鼠標(biāo)位置,第三個(gè)參數(shù)可以認(rèn)為將白色不繪制。
完整代碼如下:


點(diǎn)擊【啟動(dòng)】

運(yùn)行效果:
