萌新的游戏编程就用winform做图形界面是不是最好选择?(2)
上次发了帖子之后,但凡是出谋划策的,如果大家的指教我直接能看懂的,就直接听取意见,如果能看懂关键词的,就根据关键词去搜索学习,如果关键词也全都看不懂的,那只能忽略了......
在听取了大家的意见后,上网搜索,最后主要参考的是以下这个教程:
https://scottlilly.com/learn-c-by-building-a-simple-rpg-index/根据上次的帖子,我主要的改动是:
1.尽量不要用static
2.用C#,用winform,拉按钮,拉文本框,算是做出图形界面吧,总之就是“可以用鼠标点”,不用在cmd里面玩了。
3.关于随机,根据所学的教程,使用更好的随机方式,把若干function合并,don't repeat yourself
4.其他就是在程序里面各种逻辑,各种编程上的改善。对,没错,改完了还是很萌新,那还不是要继续嘛~
5.终于初步做好一个可以双击来打开的exe游戏文件了呗
6.目前的逻辑仍然只是完成了以下这个图的内容,图形界面什么的太花时间了。
图中的具体随机和数值等已经被我改了

游戏目前长这样,

通过下方的按钮选一个人

结果可能是

也可能是愿意,那样的话左边的列表会更新:

主要想贴出来的一些代码:
关于怎么决定能不能交到朋友的代码片段,这个放在Player.cs这个class里面,也不知道分在这里应不应该
复制内容到剪贴板
代码:
public bool MakeFriendSuccessfully(Person stranger)
{
if (stranger.Look >= (Look + 5) && stranger.IQ >= (IQ + 5))
{
if (RandomStat.NumberBetween(0, 100) < 80)
return false;
return true;
}
else if (IQ > (stranger.IQ+10) || Look > (stranger.Look+5))
{
if (RandomStat.NumberBetween(0, 100) < 70)
return true;
return false;
}
else
{
if (RandomStat.NumberBetween(0, 100) <= 50)
return false;
return true;
}
}
关于主程序里,继续按钮在做什么
private void btnContinue_Click(object sender, EventArgs e)
{
Friend stranger1 = new Friend();
Friend stranger2 = new Friend();
Friend stranger3 = new Friend();
rtbMessages.Text += Environment.NewLine;
rtbMessages.Text += "\n现在你上学了,遇到以下三人:";
List<Friend> strangerlist = new List<Friend>();
strangerlist.Add(stranger1);
strangerlist.Add(stranger2);
strangerlist.Add(stranger3);
foreach (Friend stranger in strangerlist)
{
rtbMessages.Text += Environment.NewLine;
rtbMessages.Text += stranger.DisPlayName();
rtbMessages.Text += stranger.DisplayInfo();
}
cboList.DataSource = strangerlist;
cboList.DisplayMember = "Name";
cboList.ValueMember = "Name";
cboList.SelectedIndex = 0;
cboList.Visible = true;
btnChoice.Visible = true;
btnContinue.Visible = false;
rtbMessages.Text += Environment.NewLine;
rtbMessages.Text += "\n选一个尝试交朋友,你选谁?";
}
这次主要的问题是:
1.从一个form到未来可能会用到多个form,感觉开始接近使用unity的场景,unity不是有多个scenes什么的吗,请大家指点我看是不是渐渐的开始使用unity会变得更省力?比如说现在,我要把form1的variable传到form2就会很麻烦,我已经试过了,不知道unity有没有好一点
2.目前继续按钮只能重复同一个event,这不是我想实现的结果。如何使用同一个按钮“继续按钮”,来达到不同event的结果?就是现在buttonclick的结果,第一次按,产生的结果是遇到三个陌生人,下一次按,就应该是下一个事件了,但是仍然是使用这同一个“继续”按钮,这种编程上应该怎么实现,我连该搜什么关键词都不懂
3.下一次真的主要解决save/load的编程,反正那个教程有教
github:
https://github.com/nancyivy/game_winform_10302017_cn在这里下载游戏来玩,其实没什么可玩的啊,只能重复第一步交朋友,所以只在此放临时文件:
https://file.town/download/2vc8r54d2eyk871iryhakifvxhttps://expirebox.com/download/0 ... 2b838a8c28c341.html实在看不过去就请大家一乐。
[
本帖最后由 nancyivy 于 2017-10-31 14:08 编辑]