我罗斯方块最终篇
作者:互联网
这个作业属于哪个课程 | <2020年面向对象程序设计> |
---|---|
这个作业要求在哪里 | <我罗斯方块最终篇> |
这个作业的目标 | <完成我罗斯方块游戏> |
作业正文 | 我罗斯方块最终篇 |
其他参考文献 | |
小组成员 | 学号 |
曹雯倩 | 031903139 |
蔡丽婷 | 031903138 |
首先,我们想补交一下上次的作业
关于是如何艰难完成这次的作业:
①因为此次游戏目的是设计双人版的,所以我们打算先设计完单人版后再以此基础设计双人版的。
②在第一次的作业中,简述了完成此次作业相关的各类函数,但实操后发现事情并不简单...
③在最终完成的代码中,有以下几个我认为比较重要的函数
bool check() //为了防止方块在合理的范围内移动的检查方块合法性的函数
void moveLeftRight(int offset) //移动方块
void doRotate() //旋转方块
void keyEvent(RenderWindow *window) //给某个按键赋予功能性
void newBlock() //随机获取一个新方块
void drawBlocks(Sprite *spriteBlock,RenderWindow *window) //方块的体现
void drop() //控制方块下落的函数
void clearLine() //在最后一行满行时消除此行
④我们的背景音乐很好听(超大声!!)
代码要点
我们遇到了哪些问题?(排名不分先后)
①背景图、边框和方块的像素处理问题
因为边框和方块的像素要成倍数关系,所以就比较困难。
第一次处理后我们的方块:
是不是还蛮搞笑的...
多次处理后我们的方块:
虽然还是没有很完美但是可以见人了!
②我觉得是写旋转方块的那个函数叭,因为要搞清楚旋转点就有、、难。
一开始我们写的代码是
void doRotate() //旋转
{
for (int i = 0; i < 4; i++)
{
BakBlock[i] = curBlock[i];
}
Point p = curBlock[1];
for (int i = 0; i < 4; i++)
{
Point tmp = curBlock[i];
curBlock[i].x = p.x - tmp.y + p.y;
curBlock[i].y = tmp.x - p.x + p.y;
}
运行以后发现七种方块中“田”字格的方块在按下旋转键后会小范围的走动,然后貌似此方块旋不旋转都是一个形态,所以就直接在函数体的开头限定了此方块的形态。
if (blockIndex == 7)
{
return;
}
加上后解决了这个问题。
③计算分数的问题,因为我们起初不知道怎么把消行和分数关联在一起,还有分数的显示之类的,后来有借鉴网络上的各种代码,最后弄出来惹。以下是我们的代码
void initScore()
{
if (!font.loadFromFile("Sansation.ttf")) {
exit(1);
}
textScore.setFont(font);
textScore.setCharacterSize(30);
textScore.setFillColor(sf::Color::Black);
textScore.setStyle(sf::Text::Bold);
textScore.setPosition(1500, 200);
textScore.setString("0");
}
如何把单人版变成双人版???
由单人变成双人,首先是在单人的界面框旁边加一个框,实在不知道怎么把另外一个框放在一个位置上,然后又突然定义的另外一个新的的方块在一个范围活动,就手动把另外一个框贴上去了。。试了很多遍,怎么产生双人的效果,先是,想着弄两个RenderWindow window,但是他出现的两个界面没办法同时进行按键检测,只能放弃。接着又想着重新定义一个按键检测的函数,进行两遍按键检测,但是不知道为什么,就只能检测到一个,可能是进去了就不出来了吧?最后不知道怎么的,最后,我试着把所有的按键检测放到一起,突然就可以了!!
代码的 git 仓库链接(https://github.com/cailiting/woels)
运行视频(https://www.bilibili.com/video/BV1Gg4y1q76z)
运行的截图
依然存在的问题
①只能手动结束游戏
②没有垃圾行这一功能
③页面缺少美观
收获与心得
虽然和其他同学比起来,我们的我罗斯真的哈哈哈哈哈哈哈哈“低一个档次”,我们在查看别的同学的作业时都惊呆了,太厉害了
标签:textScore,代码,罗斯,最终,作业,curBlock,void,方块 来源: https://www.cnblogs.com/wq031903139/p/13108040.html