程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#開發WPF/Silverlight動畫及游戲系列教程(Game Tutorial):(四十)(1)

C#開發WPF/Silverlight動畫及游戲系列教程(Game Tutorial):(四十)(1)

編輯:關於C語言

C#開發WPF/Silverlight動畫及游戲系列教程(Game Tutorial):(四十)向Silverlight移植②

三、新增功能:

1)新增游戲的音樂及音效對象:

public static MediaElement gameMusic, gameAudio;

2)新增游戲鼠標光標:

//設置游戲鼠標光標
GameCursor.Stretch = Stretch.Fill;
GameCursor.Source = Super.GetImage("/Image/Cursor/0.png");

在鼠標移動事件中根據命中測試進行時時的鼠標光標圖片位置更新:

//鼠標移動(懸停)事件
private void Game_MouseMove(object sender, MouseEventArgs e) {
……
Point p = e.GetPosition(Root);
GameCursor.SetValue(Canvas.LeFTProperty, p.X); GameCursor.SetValue(Canvas.TopProperty, p.Y);
……
}

此方法實現了鼠標圖片跟隨光標移動,但是很明顯的影響了程序整體性能(CPU消耗會明顯增加),如果哪位朋友能提供更好的解決方案,望留言給我。

3)新增點擊水滴:

當鼠標在屏幕上左鍵點擊時,只要不點到對象物體上,則在該位置顯示出光標水滴,並播放它自身的動畫。目前我的Silverlight游戲引擎中只用一個光標水滴:

QXDecoration hitCursor;
/// <summary>
/// 加載光標點擊水滴
/// </summary>
private void LoadHitCursor() {
 hitCursor = new QXDecoration() {
  Code = 1,
  EndFrame = 9,
  CenterX = 32,
  CenterY = 32,
 };
 hitCursor.Visibility = Visibility.Collapsed;
 Add(hitCursor);
}
//鼠標左鍵事件
private void Game_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
……
//出現光標水滴
hitCursor.Visibility = Visibility.Visible;
hitCursor.FrameCounter = 0;
hitCursor.Timer.Start();
hitCursor.Coordinate = p;
……
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved