首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 實作滑鼠控制飛機移動的完整教學與程式碼範例

     編輯:程式設計綜合問答

前言

在 C# Windows Forms 應用程式中,實作一個可透過滑鼠控制移動的飛機遊戲原型,是初學者熟悉事件驅動程式設計、繪圖機制與遊戲迴圈的絕佳練習。本文將完整說明如何建立專案、處理滑鼠事件、繪製飛機圖片,並提供可直接執行的程式碼範例。

專案建立與準備

  1. 開啟 Visual Studio,建立新的 Windows Forms App (.NET Framework) 專案。
  2. 在表單屬性中設定 DoubleBuffered = true 以減少閃爍。
  3. 準備一張飛機圖片(如 plane.png),加入專案資源或放置於執行目錄。

核心程式碼實作

public partial class Form1 : Form
{
    private Image planeImg;
    private Point planePos = new Point(200, 200);
    private const int PlaneWidth = 60, PlaneHeight = 60;

    public Form1()
    {
        InitializeComponent();
        this.DoubleBuffered = true;
        planeImg = Image.FromFile("plane.png"); // 或從 Resources 讀取
        this.MouseMove += Form1_MouseMove;
        this.Paint += Form1_Paint;
    }

    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        // 讓飛機中心對準滑鼠座標
        planePos.X = e.X - PlaneWidth / 2;
        planePos.Y = e.Y - PlaneHeight / 2;
        this.Invalidate(); // 觸發重繪
    }

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.DrawImage(planeImg, planePos.X, planePos.Y, PlaneWidth, PlaneHeight);
    }
}

進階擴充建議

  • 加入 Timer 控制遊戲主迴圈,實現自動發射子彈、敵機生成與碰撞偵測。
  • 使用 KeyDown 事件支援鍵盤輔助控制。
  • 引入聲音效果與分數系統,提升遊戲體驗。

常見問題排除

Q: 圖片不顯示? 確認檔案路徑正確,或改用 Properties.Resources.plane 讀取嵌入資源。
Q: 移動有延遲? 開啟 DoubleBuffered 並避免在 Paint 事件中執行複雜運算。

完整範例程式碼可參考 GitHub 專案:C# Mouse Controlled Plane Demo。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved