创建一个名为2048的游戏。此游戏在Nexus 7上的纵向布局如下所示:
我还提供了其他格式不同的示例。
功能和游戏玩法
2048是一款在4X4网格上设计的游戏,玩家应将数字加在一起并进入2048磁贴。如果您不熟悉它,可以在线玩它。在线玩。如果您想尝试该应用,则该网页包含Play商店中Android应用的链接。
游戏只有几个规则,但我简化了几个。以下是您必须制定的应用程序的所有规则和要求:
• 以其值在其中心绘制图块。同时为每个图块绘制轮廓。(提示:canvas.drawRect和canvas.drawText)。
• 在活动上使用“手势”手势可上下,左右移动。(即使在视线之外,也可以在活动中的任何地方工作)。
• 游戏应从2个图块开始,将2的值随机放置在网格上。
• 朝任何方向滑动都应将所有图块向该方向移动,并且如果触摸将具有相同值的2个图块连接在一起。(检查下面的示例)。
• 一次只能加入一个方块。例如,如果一行中有4个图块,所有图块都具有相同的值(例如2,2,2,2),则向右拖动应以(0,0,4,4)结尾。
• 如果fling移动了任何图块或将任何图块连接在一起,则值为2的图块应随机出现在网格上的空插槽之一上。
• 如果向某个方向猛扑并没有移动图块或将图块连接在一起,则该移动无效,因此不应显示随机图块。(检查下面的示例)。
• 不要使用动画,只需在每次刷新后更新视图。
• 对具有不同值的图块使用不同的颜色。您只需为2到2048上色即可。
• 将视图的背景色设置为灰色。
• 连接两个图块后,分数应增加所得图块的值。(加入2个图块,每个图块的值为8,应将得分提高16)。
• “新游戏”按钮应重置游戏。
• 网格的大小应相对于屏幕大小。检查示例屏幕截图以供参考。
• 如果所有位置都被占用,并且没有其他有效的移动,则用户会迷失方向。在这种情况下,应该出现烤面包来告知用户丢失的东西。(检查下面的示例)。
• 您只需要设计人像活动,就不必担心保存游戏状态。如果您提早完成,则可以在有兴趣的情况下将这些功能添加到您的应用中(不会有任何额外的功劳)。
例子
1.滑动(文件):
用户向右滑动(向右滑动)后,最后一行的两个图块应向右移动并合并在一起。分数应增加4,并且网格上应显示值为2的随机图块。下图是向右滑动的结果:
2.无效的举动:
在下面的示例中,向右或向下滑动不会移动或合并图块,因此无效。视图和分数应保持不变,并且不应显示新的图块。
3.失去烤面包:
在下面的示例中,没有任何空白点,也没有可以合并的图块,因此用户会迷失方向,并应祝酒。
布局说明
磁贴中的文字应水平和垂直居中。文本的大小在任何屏幕上都应该足够大。
自定义视图应为正方形,应几乎占据设备的所有宽度,并且应在屏幕上水平和垂直居中。查看屏幕快照,以查看视图在活动中的放置方式。
不要嵌套重物。
我使用LinearLayout,但如果愿意,可以使用RelativeLayout。
基本原则
在进行此作业时,您可以使用课堂笔记,个人笔记以及您希望使用的任何其他资源,包括诸如Wikipedia或在线文档之类的网络资源,但前提是您绝不与任何其他人(TA或讲师除外)进行交流与考试有关)。禁止使用电子邮件,手机,即时消息,公告栏或其他个人通讯。您可以访问CSE帐户中的文件,并从外部计算机装载驱动器。但是,您可能不会随时接受其他人的帮助。
除常量外,不允许使用任何静态变量。
您的应用必须满足以下分辨率:Nexus 7,Nexus 5和Nexus4。它必须以纵向模式工作。
投稿须知
在Android Studio中,选择“终端窗口”。查看>工具窗口>终端。
类型:gradlew清洁。第一次执行可能需要很长时间。
然后选择“文件”>“关闭项目”。
压缩包含您的android项目的文件夹的内容。那是包含所有文件的文件夹。
在Windows中,进入文件夹。该文件夹中应包含名为.gradle,.idea,app和gradle的子文件夹。突出显示所有文件和文件夹,然后单击鼠标右键。选择“发送到”>“压缩的ZIP”文件夹。提交.zip文件。还有许多其他ZIP实用程序可用。
其他注意事项
您将必须为此任务创建一个自定义View类。请记住,您可以在活动中创建绘制函数,然后在CustomView的onDraw函数中调用它。这可能会使您更容易绘制图形。
您可以创建一个二维数组来处理网格。对于空白点,可以使用0并仅绘制数字大于0的图块。
请参考讲义幻灯片,将onFling手势添加到您的应用中。我建议先检测逃跑的方向。请记住,您可以访问两个事件,并且可以获得它们的坐标。如果减去事件坐标并找到deltaX和deltaY,则可以非常容易地检测方向。
首先从其中一个移动功能开始,然后对其进行测试,如果您注意一个方向的移动和合并,则可以轻松地将其更改为其他方向。
在仿真器中,您可以通过单击并按住鼠标左键,然后快速将鼠标移至要猛扑的方向来模拟“猛冲”。