c#開發大沖鋒游戲登錄器

1 前言

本文主要分享登錄器的簡要開發過程,只適合小白選手,高手請自動避讓。

此項目是復刻大沖鋒計劃中的子集。

(注:大沖鋒是迅雷代理的一款次時代多職業第一人稱FPS射擊游戲,目前已經關服嗝屁。)
在這里插入圖片描述

2 效果展示

在這里插入圖片描述

3 技術選型

本文選用c#語言,WPF框架來開發游戲登錄器,考量的原因:

  • 大量的unity開發人員,普遍熟悉c#、dotNet、WPF技術棧,用起來輕車熟路,成本低

  • 由于Win7系統自帶.NET 3.5、Win8系統自帶 .NET 4.0,所以可以覆蓋絕大多數目標平臺

  • WPF技術成熟,案例多,相關資料豐富

4 設計

4.1 功能拆分

主要分為三大塊

UI表現

啟動游戲

登陸校驗

本文限于時間和篇幅,重點介紹UI表現部分,關于登陸校驗和啟動游戲,只使用本地邏輯進行簡單的模擬示意。

4.2 素材準備

在大沖鋒登錄器目錄下,可以發現圖片素材和布局素材,我們只取用圖片素材如下:
在這里插入圖片描述

5 窗體

5.1 實現異形窗體

WPF實現不規則窗體的方法有好幾種,比如使用blend繪制,比如使用path進行clip。有興趣的請自行搜索擴展了解。

本文選擇一個比較傻瓜的方式:使用透明背景的png圖片。

窗體xaml實現如下:

<Window x:Class="FCLoginMain.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:FCLoginMain"mc:Ignorable="d"Title="迅雷游戲登錄器-大沖鋒" Height="673" Width="950" AllowsTransparency="True" WindowStyle="None" OpacityMask="White" Background="Transparent" Icon="pack://siteoforigin:,,,/img/FCLoginMain.ico">
</Window>

重點是窗體的幾個屬性設置:

AllowsTransparency=“True” - 允許透明

WindowStyle=“None” - 去掉邊框

OpacityMask=“White” - 設置白色透明

Background=“Transparent” - 設置背景透明

5.2 實現窗體拖動

為Gird訂閱MouseLeftButtonDown事件:

<Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown"><Image Stretch="Fill" Source="pack://siteoforigin:,,,/img/big_bkg.png"/>
</Grid>

代碼中對MouseLeftButtonDown事件進行處理:

private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{//實現窗體拖動this.DragMove();
}

5.3 最小化按鈕和關閉按鈕

這個功能很簡單,直接看代碼:

/// <summary>
/// 窗體最小化按鈕
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnMinimized_Click(object sender, RoutedEventArgs e)
{this.WindowState = WindowState.Minimized;
}
/// <summary>
/// 窗體關閉按鈕
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnClose_Click(object sender, RoutedEventArgs e)
{Environment.Exit(0);//this.Close();//App.Current.Shutdown();
}

5.4 設置窗體的啟動位置

在構造函數中初始化啟動位置,計算屏幕寬高,進行居中顯示;

public MainWindow()
{InitializeComponent();//設置窗體的啟動位置double screenW = SystemParameters.ScrollWidth;double screenH = SystemParameters.ScrollHeight;double offsetHorizontal = 100;double offsetVertical = 200;this.Left = (this.Width - screenW ) / 2 - offsetHorizontal;this.Top = (this.Height - screenH) / 2 - offsetVertical;
}

5.6 圖標設置

準備中……

5.7 設計時正常,運行時圖片不顯示的問題

準備中……

6 圖片按鈕

6.1 顯示屬性

準備中……

6.2 點擊事件

準備中……

6.3 響應鼠標動作

準備中……

7 啟動游戲

登陸成功后,自動啟動游戲的可執行程序,即exe文件

啟動另一個可執行程序的方法

System.Diagnostics.Process.Start("FinalCombat.exe");

8 登陸

8.1 校驗賬戶密碼

正常產品應該和登陸服務器通信,進行校驗,本文demo只使用本地邏輯進行簡單的模擬示意:

8.2 接入第三方登陸

使用bmob后端云

9 代碼樣例

請見倉庫FCLoginMain

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77819.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77819.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77819.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux[基礎指令][2]

Linux[基礎指令][2] cp(復制) 格式:cp [-rf] 源文件 {普通文件,目錄} 拷貝 cp -r 遞歸拷貝目錄 藍色為目錄,白色為具體文件 拷貝后面加一個不存在的文件會新建文件再拷貝 cp -ir -i是覆蓋的時候詢問 如果目標文件存在就會覆蓋原有文件 mv(重命名/剪切) 格式:mv 源文件…

React18+ 項目搭建-從初始化、技術選型到開發部署的全流程規劃

搭建一個 React 項目需要從項目初始化、技術選型到開發部署的全流程規劃。以下是詳細步驟和推薦的技術棧&#xff1a; 一、項目初始化 1. 選擇腳手架工具 推薦工具&#xff1a; Vite&#xff08;現代輕量級工具&#xff0c;支持 React 模板&#xff0c;速度快&#xff09;&am…

人工智能學習框架完全指南(2025年更新版)

一、核心框架分類與適用場景 人工智能框架根據功能可分為深度學習框架、機器學習框架、強化學習框架和傳統工具庫,以下是主流工具及選型建議: 1. 深度學習框架 (1)PyTorch 核心優勢:動態計算圖、靈活性強,適合科研與快速原型開發,支持多模態任務(如NLP、CV) 。技術生…

MySQL 詳解之事務管理

MySQL 詳解之事務管理 在數據庫領域,事務是一個核心概念,它確保了數據操作的可靠性和一致性。尤其是在處理涉及多個步驟且必須全部成功或全部失敗的業務場景時,事務更是不可或缺。本篇文章將深入探討 MySQL 中的事務管理,幫助您全面理解事務的工作原理及其在實際應用中的重…

SpringAI+DeepSeek大模型應用開發——5 ChatPDF

ChatPDF 知識庫 RAG檢索增強 由于訓練大模型非常耗時&#xff0c;再加上訓練語料本身比較滯后&#xff0c;所以大模型存在知識限制問題&#xff1a; 知識數據比較落后&#xff0c;往往是幾個月之前的&#xff1b;不包含太過專業領域或者企業私有的數據&#xff1b; 為了解決…

SSH 互信被破壞能導致 RAC 異常關閉嗎

一、 SSH 互信和 RAC 的關系 1、SSH 互信對 RAC 的作用 Oracle 11g R2 在安裝 Grid Infrastructure 的時候&#xff0c;能夠通過安裝程序配置節 點間的 SSH 用戶等效性&#xff0c;之所以要在安裝之前配置 SSH 用戶等效性&#xff0c;是為了能 夠在安裝前使用 C…

【數字圖像處理】立體視覺信息提取

雙目立體視覺原理 設一個為參考平面&#xff0c;一個為目標平面。增加了一個攝像頭后&#xff0c;P與Q在目標面T上有分別的成像點 雙目立體視覺&#xff1a;從兩個不同的位置觀察同一物體&#xff0c;用三角測量原理計算攝像機到該物體的距離的 方法 原理&#xff1a;三角測量…

基于springboot+vue的校園二手物品交易平臺

開發語言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服務器&#xff1a;tomcat7數據庫&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;數據庫工具&#xff1a;Navicat11開發軟件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

【Redis】Redis基本命令(1)

KEYS 返回所有滿足樣式&#xff08;pattern&#xff09;的key。 KEY * 返回所有key&#xff0c;不簡易使用 性能問題&#xff1a;當 Redis 存儲百萬級鍵時&#xff0c;會消耗大量 CPU 和內存資源&#xff0c;Redis 是單線程模型&#xff0c;KEYS * 執行期間會阻塞其他所有命令…

C#通用常見面試題-精心整理

以下是優化后的版本,在原有內容基礎上補充了應用場景,其他結構保持不變: 上位機面試題解答(技術詳解+示例) C#-IOC框架 1. 值類型和引用類型的本質區別 解釋 值類型:存儲在棧中,直接保存數據值(如 int, struct)。引用類型:存儲在堆中,變量保存對象地址(如 class,…

K8S節點出現Evicted狀態“被驅逐”

在Kubernetes集群中&#xff0c;Pod狀態為“被驅逐&#xff08;evicted&#xff09;”表示Pod無法在當前節點上繼續運行&#xff0c;已被集群從節點上移除。 問題分析&#xff1a; 節點磁盤空間不足 &#xff0c;使用df -h查看磁盤使用情況 可以看到根目錄 / 已100%滿&#x…

[密碼學基礎]國密算法深度解析:中國密碼標準的自主化之路

國密算法深度解析&#xff1a;中國密碼標準的自主化之路 國密算法&#xff08;SM系列算法&#xff09;是中國自主研發的密碼技術標準體系&#xff0c;旨在打破國際密碼技術壟斷&#xff0c;保障國家信息安全。本文將從技術原理、應用場景和生態發展三個維度&#xff0c;全面解…

Linux 網絡基礎(三) TCP/IP協議

一、TCP 與 IP 的關系 IP 層的核心作用是定位主機&#xff0c;具有將數據從主機 A 發送到主機 B 的能力&#xff0c;但是能力并不能保證一定能夠做到&#xff0c;所以這時就需要 TCP 起作用了&#xff0c;TCP 可以通過超時重傳、擁塞控制等策略來保證數據能夠發送到 B 主機。 所…

基于 Vue 的Tiptap 富文本編輯器使用指南

目錄 &#x1f9f0; 技術棧 &#x1f4e6; 所需依賴 &#x1f4c1; 文件結構 &#x1f9f1; 編輯器組件實現&#xff08;components/Editor.vue&#xff09; ? 常用操作指令 &#x1f9e0; 小貼士 &#x1f9e9; Tiptap 擴展功能使用說明&#xff08;含快捷鍵與命令&am…

統計圖表ECharts

統計某個時間段&#xff0c;觀看人數 ①、數據表 ②、業務代碼 RestController RequstMapping(value"/admin/vod/videoVisitor") CrossOrigin public class VideoVisitorController{Autowriedprivate VideoVisitorService videoVisitorService;//課程統計的接口…

ubuntu 安裝 redis server

ubuntu 安裝 redis server sudo apt update sudo apt install redis-server The following NEW packages will be installed:libhiredis0.14 libjemalloc2 liblua5.1-0 lua-bitop lua-cjson redis-server redis-toolssudo systemctl start redis-server sudo systemctl ena…

【白雪講堂】[特殊字符]內容戰略地圖|GEO優化框架下的內容全景布局

&#x1f4cd;內容戰略地圖&#xff5c;GEO優化框架下的內容全景布局 1?? 頂層目標&#xff1a;GEO優化戰略 目標關鍵詞&#xff1a; 被AI理解&#xff08;AEO&#xff09; 被AI優先推薦&#xff08;GEO&#xff09; 在關鍵場景中被AI復讀引用 2?? 三大引擎邏輯&#x…

NVIDIA 自動駕駛技術見解

前言 參與 NVIDIA自動駕駛開發者實驗室 活動&#xff0c;以及解讀了 NVIDIA 安全報告 自動駕駛 白皮書&#xff0c;本文是我的一些思考和見解。自動駕駛技術的目標是為了改善道理安全、減少交通堵塞&#xff0c;重塑更安全、高效、包容的交通生態。在這一領域&#xff0c;NVI…

OpenCV day6

函數內容接上文&#xff1a;OpenCV day4-CSDN博客 , OpenCV day5-CSDN博客 目錄 平滑&#xff08;模糊&#xff09; 25.cv2.blur()&#xff1a; 26.cv2.boxFilter(): 27.cv2.GaussianBlur()&#xff1a; 28.cv2.medianBlur(): 29.cv2.bilateralFilter()&#xff1a; 銳…

Function calling, 模態上下文協議(MCP),多步能力協議(MCP) 和 A2A的區別

背景闡述 本文大部分內容都是基于openAI 的 chatGPT自動生成。作者進行了一些細微的調整。 LLM 帶來了很多思維的活躍&#xff0c;基于LLM&#xff0c;產生了很多應用&#xff0c;很多應用也激活了LLM的新的功能。 Function calling&#xff0c;MCP&#xff08;Modal Contex…