C#网游客户端

一、项目创建以及页面设置

(一)新建项目

1.创建新项目控制台应用(.NET Framework)->下一步在这里插入图片描述
2.选择合适的存储位置命名,点击创建
在这里插入图片描述

(二)界面设计

1.总的页面
在这里插入图片描述
2.图片PictureBox设置
(1)Imge背景设置
在这里插入图片描述
从本地导入图片
在这里插入图片描述

(2)SizeMode选择StrechImage,会把PictureBox图片框铺满,自适应图片框的大小。
在这里插入图片描述

二、连接服务器

1.在Form中初始化进入游戏:

private NetworkStream stream;
private TcpClient tcpClient = new TcpClient();
public Form1()
{
    InitializeComponent();
    try
    {
        //向指定的IP地址的服务器发出连接请求
        tcpClient.Connect("10.1.230.74", 3900);
        listBox1.Items.Add("连接成功!");
        stream = tcpClient.GetStream();
        byte[] data = new byte[1024];
        //判断网络流是否可读            
        if (stream.CanRead)
        {
            int len = stream.Read(data, 0, data.Length);
            //Encoding ToEncoding = Encoding.GetEncoding("UTF-8");
            //Encoding FromEncoding = Encoding.GetEncoding("GB2312");
            //data=Encoding.Convert(FromEncoding, ToEncoding, data);
            //string msg = Encoding.UTF8.GetString(data, 0, data.Length);
            string msg = Encoding.Default.GetString(data, 0, data.Length);
            string str = "\r\n";
            char[] str1 = str.ToCharArray();
            string[] msg1 = msg.Split(str1);
            for (int j = 0; j < msg1.Length; j++)
            {
                listBox1.Items.Add(msg1[j]);
            }
        }
    }
    catch
    {
        listBox1.Items.Add("服务器未启动!");
    }
}


2.运行结果

三、客户端向服务器发送数据

1.双击button12
在这里插入图片描述

2.在Form1.cs加入代码

 private void button12_Click(object sender, EventArgs e)
        {
            //判断连接是否断开
            if (tcpClient.Connected)
            {
                //向服务器发送数据
                string msg = textBox1.Text;
                Byte[] outbytes = System.Text.Encoding.Default.GetBytes(msg + "\n");
                stream.Write(outbytes, 0, outbytes.Length);
                byte[] data = new byte[1024];
                //接收服务器回复数据
                if (stream.CanRead)
                {
                    int len = stream.Read(data, 0, data.Length);
                    string msg1 = Encoding.Default.GetString(data, 0, data.Length);
                    string str = "\r\n";
                    char[] str1 = str.ToCharArray();
                    string[] msg2 = msg1.Split(str1);
                    for (int j = 0; j < msg2.Length; j++)
                    {
                        listBox1.Items.Add(msg2[j]);
                    }
                }
            }
            else
            {
                listBox1.Items.Add("连接已断开");
            }
        }

3.运行结果
在这里插入图片描述

四、播放背景音乐

1.设置音乐按钮如下,一个Lable和两个Button
在这里插入图片描述

2.添加WindowsMediaPlayer控件,工具箱->常规右键->选择项
在这里插入图片描述
3.勾选COM组件中的Windows Media Player
在这里插入图片描述

4.添加成功如下
在这里插入图片描述
5.双击Button13(播放键)设置代码.如下


        private void button13_Click(object sender, EventArgs e)
        {
            string s = @"C:\Users\86199\Music\xz\Something just like this.mp3";
            axWindowsMediaPlayer1.URL = s;
        }
        private void button14_Click(object sender, EventArgs e)
        {
            //用于暂停正在播放的背景音乐
            axWindowsMediaPlayer1.Ctlcontrols.pause();
        }

五、切换游戏背景图片

1.添加Timer组件
在这里插入图片描述
2.t

2.Timer的属性Enable设置True
在这里插入图片描述

3.添加代码如下

int flag = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            flag++;
            string picturePath = @"F:\game\pictures\" + flag + ".jpg";
            pictureBox1.Image = Image.FromFile(picturePath);
            if (flag ==3)
            {
                flag = 0;
            }
        }

4.运行结果
在这里插入图片描述

六、总结

本次实验用到C#编写客户端网游,过程中学习到了一些基本组件的方法,了解了他们的属性,客户端网游感觉更多的是界面的设计。

七、参考资料

编写一个网游客户端
C#编写网游客户端

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#网页版+客户端版聊天软件源码分享(C#+长连接+Sqllite数据库实现) 今天我给大家分享一个聊天程序的源码。 网页版加客户端版并存,可以互通 我相信对大家学习和扩展这一块知识是很有用的。 我们先来看下软件结构 一个Web版一个网页版,而客户端是连接的网页的 http://localhost:53947/wwwroot/Lesktop 这个路径 http://localhost:53947/wwwroot/这一部分是网页的地址,大家可以根据自己配置情况进行修改 然后浏览一下Default.aspx页面如下 这是负面版的,客户端的也是一样的,我们先来注册 一个账户 在这里我们注册两个账户还有一个是text用来聊天对话使用 注册的方法是一样的我就不多说了。 下面登录第一个账户看看 这是登录后的效果。 单击聊天室 然后我们再登录另外一个账户text 好了大家应该能看到效果了吧。 然后咱们再发个“你好” 收到了吧,再回复一个 对就是这个效果, 再来看看桌面版的 刚才的消息都在 这是桌面版的效果。 大家感觉怎么样。 我感觉大家可以在这个基础之上进行扩展,最少可以看看他的实现思路 源码分享给大家了 sufeinet.com即时通信_云骞.zip (3.25 MB, 下载次数: 1078) ReceiveResponsesHandler 类,这个主要是用来接收和维护长连接的 实现长连接的两个重要来代码预览 [C#] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 using System; using System.Collections.Generic; using System.Collections; using System.Text; using System.Web; using System.Xml; using System.Threading; namespace Core { public class ReceiveResponsesHandler : IHttpAsyncHandler { public ReceiveResponsesHandler() { } HttpContext m_Context = null; IAsyncResult IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) { m_Context = context; string sessionId = context.Request.Params["SessionID"]; string clientVersion = context.Request.Params["ClientVersion"]; string serverVersion = context.Request.Params["ServerVersion"]; ResponsesListener asyncResult = new ResponsesListener(sessionId, cb, extraData); try { if (serverVersion != ServerImpl.Instance.Version) throw new IncompatibleException();

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值