Web版2048游戏制作

写在前面

工作之余参与了《慕课网2048游戏制作》的学习视频,视频断断续续看完了,游戏也制作成功了。因为其他的事情也没来的及总结,一拖时间也就过去了,整理磁盘的时候发现了2048源码,思考一下还是将之push到github上了(后面贴出),也顺便写篇总结,回顾一下,同时也谢谢liuyubobobo老师的授课。

不过源码在手,不运行下玩玩,怎么说的过去呢,哈哈!下面是游戏截图。

大图是PC端运行的效果,小图则是在iphone5s上的运行效果(Chrome浏览器debug,具体如何做参考文章:http://1.liangtao.sinaapp.com/?p=628)

怎么样,效果不错吧,接下来我会一一回顾2048游戏的制作。

游戏架构

首先在开始制作游戏之前,我们需要知道游戏的逻辑是什么。以便于我们选取什么技术,考虑游戏架构的问题。本2048游戏采用面向过程的设计(读者有兴趣可以改为面向对象的)。2048游戏是基于用户响应的游戏,而且比较的简单,使用到的技术有:

  • UI - HTML/CSS:定制游戏UI界面.
  • JavaScript/jQuery:游戏主逻辑.

游戏架构如下图:

典型的MVC模式,2048游戏比较的简单,这里也没有采用面向对象的设计,主数据直接可以放入游戏主逻辑就行了,而且需要的数据也不是非常的复杂:

/**
 * @Description:main,js
 * @Author:LCore
 */

//4*4格子
var board = new Array();
var score = 0;     //得分记录
var hasConflicted = new Array();   //记录棋盘格每个格子是否冲突
var startX,
    startY,
    endX,
    endY;                  //触控支持

//移动方向定义
var direction = {
    left: 1,
    up: 2,
    down: 3,
    right: 4
};

游戏主数据定义完成之后,即是构建游戏界面,即是初始化棋盘格。也就是如下界面:

这里涉及到前端css+html,就不贴代码了。

游戏逻辑

游戏逻辑这块是整个游戏制作的核心部分,处理好整个游戏的逻辑之后基本上游戏整个的雏形就也行出来了(除开一些交互效果和BUG)。包括游戏的规则、初始化的逻辑、移动的逻辑(是否能够移动,如何移动,移动多少)、游戏结束的逻辑、棋盘更新的逻辑。

之后由于要实现上述的游戏逻辑,会形成一些支撑函数support.js。

游戏交互

处理完游戏的逻辑之后,一个游戏雏形也就出来了,不过此时的游戏还比较的生硬,不够动态。需要添加一些游戏交互效果包括随机数动画,移动动画、加分效果动画。最终形成animation.js。

优化

这部分主要处理一些遗留的bug以及进行一些性能上的优化,包括随机数的生成。使用viewport添加移动端支持,处理移动端的移动效果等。

关于viewport的使用可参考:http://1.liangtao.sinaapp.com/?p=628

架设2048

这部分主要就是将如何将本地的2048放到网络上,架设的方法很多(说白了也就是放在公网服务器上)。这里我是放在新浪SAE上的,访问地址如下:http://lcorejianli.sinaapp.com/
访问有点慢-_-!

最后

本来是想有时间进一步将之做成可记录分数,积分排行的,无奈搁置了。有兴趣的朋友可以自己头脑风暴进行一些更加有意思的创意(数字换成图片,绚丽的滑动,加分效果等)。

Github地址:https://github.com/Kiritor/2048

时间: 2024-11-09 08:14:10

Web版2048游戏制作的相关文章

简易2D横版RPG游戏制作

Unity学习笔记1 简易2D横版RPG游戏制作 http://m.blog.csdn.net/article/details?id=24601905

一个用 C 语言写的迷你版 2048 游戏,只有 500个字符

Jay Chan 用 C 语言写的一个迷你版 2048 游戏,只有 487 个字符.来围观吧 M[16],X=16,W,k;main(){T(system("stty cbreak") );puts(W&1?"WIN":"LOSE");}K[]={2,3,1};s(f,d,i ,j,l,P){for(i=4;i--;)for(j=k=l=0;k<4;)j<4?P=M [w(d,i,j++)],W|=P>>11,l*

2048游戏制作(个人修改版)

需要运用Jquery,响应式2048. CSS代码: header{        display: block;        margin: 0 auto;        width: 100%;        text-align: center;    }    header h1{        font-family: Arial;        font-size: 40px;        font-weight: bold;        margin: 10px auto; 

Web 版2048

最近在园子里看到 javascript 面向对象制作坦克大战 这么一篇博客,看完后深受启发,刚好那时热衷于2048游戏,所以就将坦克大战游戏改版成了Web版的2048游戏 效果图 1.2048Game.hml 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Cocos2d-x 3.x版2048游戏开发

今天给大家介绍如何快速开发2048这样一款休闲游戏,理解整个2048游戏的开发流程,从中你将可以学习到以下内容: 2048游戏的逻辑 Cocos2d-x中上下左右手势的识别 游戏中卡片类的创建 添加卡片到游戏中 游戏中的逻辑实现 游戏中随机卡片的生成 游戏结束判断 游戏分数的添加 游戏美化 笔者的开发环境:    Cocos2d-x 3.1.1(开发引擎)    Visual Studio 2012(Win32)    Xcode 5.1(Mac系统下) 这里注明一下,本教程来自极客学院,小巫对

python版2048游戏

闲来无聊,电脑上的游戏也被删了,自己动手写了个2048,目前只是实现了基本的游戏功能,代码还比较弱: 百度盘:http://pan.baidu.com/s/1eQpJbgQ gui代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- #导入tkinter import Tkinter import game2048_Class import sys def refreshGui(): n = len(game.nlist) for i in range(

是男人就下100层【第五层】——2048游戏从源码到发布市场

上一篇<是男人就下100层[第五层]--换肤版2048游戏>中阳光小强对2048游戏用自己的方式进行了实现,并分享了核心源码,这一篇阳光小强打算将该项目的所有源代码公开并结合这个实例在这篇文章中介绍一下如何添加广告和实现分享功能. 最终运行效果如下(更多运行效果请看<是男人就下100层[第五层]--换肤版2048游戏>): 一.如何实现换肤 换肤的思路其实很简单,在ActionBar中添加菜单,当用户选择某一个皮肤后就将当前的皮肤状态修改并保存到SharedPreference中,

基于网页版的2048游戏

前段时间有个很火的游戏叫2048,刚好趁着暑假想练习前端,顺带就把它作为练习项目做成Web Applications 该游戏基于HTML5+JS+CSS 文件结构: index.html 游戏界面展示 index.css 主界面的CSS样式,16方格采用绝对布局的方式 main.js 游戏的主要逻辑 show.js 游戏的一些动画效果 support.js 底层支撑 jquery.js 页面做了响应式布局,游戏效果如下: 代码如下: index.hml <!DOCTYPE html PUBLIC

用javascript制作2048游戏的思路(原创若 转载请附上本链接)

一.项目已上传至github,地址:https://github.com/forjuan/2048game 二.学习了javascript基础后,想要捣鼓点东西做,做了一个自己以前很爱玩的2048游戏.经过初期的思路设计手工画了设计思路图.手工图有空在用图画出来. 实现2048的功能:1.核心:上下左右移动. 2.游戏开始,游戏结束. 3.外观实现. 4.积分(暂时没实现) 把问题分解:1.首要难点移动,将移动进行分解,分为上下左右移动: 2.用什么记录位置,怎样记录每个方块的值,边界,相同值相