C#编写网游客户端


一、新建项目及界面设计

  1. 新建一个WIndows 窗体应用(.Net Framework):
    在这里插入图片描述
  2. 设置项目名称和存储位置:
    在这里插入图片描述
    界面如下:
    在这里插入图片描述

二、连接服务器

在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("服务器未启动!");
    }
}

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


三、发送数据

设置确定按钮的name为btnSend,双击该按钮:
在这里插入图片描述

 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("连接已断开");
            }
        }

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


四、播放背景音乐

  1. 添加播放、暂停按钮
    在这里插入图片描述
  2. 点击工具箱,右击常规,点击选择项:
    在这里插入图片描述
  3. 勾选COM 组件下的Windows Media Player
    在这里插入图片描述

五、实现游戏背景图片变换

拖入一个timer,设置其Enable为True:
在这里插入图片描述
双击timer,编写代码:

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

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


总结

通过本次实验,实现了一个网游客户端,学习了一些组件的使用。

参考

https://blog.youkuaiyun.com/weixin_46628481/article/details/121445716
https://blog.youkuaiyun.com/qq_43279579/article/details/109693257

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值