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.mzph.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…