一、环境准备
编译软件:VS2019
操作系统:Windows10
客户端要求:
编写一个网游客户端,游戏服务器的校园内网IP地址为 10.1.230.74,端口为3900,采用TCP连接。
1)连接成功后,可以将服务器发来的消息不停地显示在 listbox 中;
客户端要发给服务器的数据,通过 textbox输入 或者点击button;
能够播放背景音乐;
每隔30秒,变换一次游戏背景图片。
二、项目制作
①创建工程与界面设计
打开VS2019创建一个新的工程
创建好工程后,首先要添加一个WindowsMediaPlayer 的控件,用于播放音乐
点击工具箱,右键常规,选择项
选择COM项中的WindowsMediaPlayer,然后确定
添加好Media Player控件之后,设计如下的界面:
其中MainView需要特殊设置多行显示,滚动条垂直滚动的属性
VolumnBar最大值为100,用于音量调节
②连接服务器
双击开始游戏按键,自动生成click函数,在函数体内编写如下代码
TcpClient tcpClient;
NetworkStream stream;
private void Btn_start_Click(object sender, EventArgs e)
{
/*
* 连接服务器
*/
try
{
//实例化
tcpClient = new TcpClient();
//向指定的IP地址的服务器发出连接请求
tcpClient.Connect("10.1.230.74", 3900);
//获取网络传输流
stream = tcpClient.GetStream();
//接受数据并转化为字符串
byte[] data = new byte[1024];
int receive = stream.Read(data, 0, 1024);
string msg = Encoding.Default.GetString(data, 0, receive);
//显示出来
MainView.AppendText(msg);
}
catch
{
MainView.AppendText("服务器未启动" + Environment.NewLine);
}
}
运行效果
③数据传输
双击发送按钮,生成onclick函数,编写代码发送请求
private void Btn_send_Click(object sender, EventArgs e)
{
//获取InputView内的文本内容
string msg = inputView.Text + "\n";
//将文本内容转化成比特流并发送给服务器
byte[] data = new byte[1024];
data = Encoding.Default.GetBytes(msg);
stream.Write(data, 0, data.Length);
//接收服务器端传来的数据流并转化为字符串
byte[] data1 = new byte[1024];
int receive = stream.Read(data1, 0, 1024);
msg = Encoding.Default.GetString(data1, 0, receive);
//清除显示框之前的内容
MainView.Clear();
//显示数据
MainView.AppendText(msg);
//刷新输入框
inputView.Clear();
//将光标集中到输入框中
inputView.Focus();
}
运行效果
④背景音乐播放
在构造函数中添加以下代码
public Form1()
{
InitializeComponent();
//设置音量调节器的初始位置
VolumnBar.Value = 50;
lbl_volumn.Text = "50";
MediaPlayer.Hide();
}
然后在Btn_start的点击函数中加入这段代码
* 播放背景音乐
******************/
//设置音量键值
VolumnBar.Value = 50;
lbl_volumn.Text = "50";
//字符串存储音乐路径
string s = @"D:\music\music.mp3";
//设置为循环播放
MediaPlayer.settings.setMode("loop", true);
//设置初始音乐的音量大小(范围:0——100)
MediaPlayer.settings.volume = 50;
//设置播放歌曲的路径
MediaPlayer.URL = s;
其中s为储存mp3文件的路径
双击音量调节滑动条,写入代码
private void VolumnBar_Scroll(object sender, EventArgs e)
{
//控制音量大小
MediaPlayer.settings.volume = VolumnBar.Value;
//控制音量显示
lbl_volumn.Text = VolumnBar.Value.ToString();
}
这样就可以通过拖动滑动条来调节音量大小了。
⑤图片轮播
在工具箱中找到Timer控件,将它拖入窗体中
Timer的设置
双击Timer,进入函数,编写以下代码
private int flag;
private void timer1_Tick(object sender, EventArgs e)
{
flag++;
string picturePath = @"E:\GamePic\" + flag + ".jpg";
//设置图片填充
PictureBar.SizeMode = PictureBoxSizeMode.Zoom;
PictureBar.Image = Image.FromFile(picturePath);
if (flag == 5)
{
flag = 0;
}
}
其中PicturePath是放图片的路径
准备五张图片,命名为1.2.3.4.5
效果如下