当前位置:首页 » 《随便一记》 » 正文

C#编写网游客户端_Baker的博客

20 人参与  2022年05月12日 13:42  分类 : 《随便一记》  评论

点击全文阅读


编写网游客户端

  • 一、项目初步设置
    • 1. 新建项目
    • 2. 界面设计
  • 二、连接服务器
  • 三、发送数据
  • 四、播放背景音乐
  • 五、实现游戏背景图片变换
  • 六、总结
  • 参考



一、项目初步设置


1. 新建项目

新建一个WIndows 窗体应用(.Net Framework)
在这里插入图片描述


设置项目名称和位置:在这里插入图片描述


2. 界面设计

右击工具箱内的常规,点击选择项

在这里插入图片描述


勾选COM 组件下的Windows Media Player
在这里插入图片描述


界面如下:
在这里插入图片描述



二、连接服务器

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,双击该按钮:
在这里插入图片描述

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

运行结果:

请添加图片描述



四、播放背景音乐

设置播放停止按钮的name分别为btnPlaybtnStop:
在这里插入图片描述
播放音乐看不出效果,这里就不放运行结果了。



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

拖入一个timer,设置其EnableTrue
在这里插入图片描述


双击timer,编写代码:

int flag = 0;
private void timer1_Tick(object sender, EventArgs e)
{
    flag++;
    string picturePath = @"C:\Users\16438\Desktop\game1\game1\game1\bin\Debug\img\" + flag + ".jpg";
    pictureBox1.Image = Image.FromFile(picturePath);
    if (flag == 3)
    {
        flag = 0;
    }
}

运行结果:
请添加图片描述




六、总结

C#连接服务器十分方便。



参考

编写一个网游客户端


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/39991.html

连接  服务器  设置  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1