写在开始之前

最近研究egret引擎时,在论坛看到了用egret引擎写的一款赛车游戏

玩法很简单,左右控制赛车躲避来车,碰撞即游戏失败

下面将为大家一步步讲解,如何用React写出一款纯 javascript+css 的小游戏

准备工作

本教程使用 React 0.14 版本

一、React基本结构

// ** code **

可以看到 html 代码非常简单,我们只留了一个

作为React渲染后插入的节点,所有的代码均写在JS中。

大家注意到 script 标签的 type 为 text/babel ,由 于React 使用 JSX 语法,browser.min.js 用于将 JSX 语法转化为 javascript 语法。

二、创建第一个React组件

var GameBoard = React.createClass({

getInitialState : function(){

return {

gameState : 0

}

},

render : function(){

return

}

});

ReactDOM.render(,document.getElementById("reactGame"));

我们通过样式创建了一个基础的游戏界面:游戏容器 [board],路面 [roadbed],路面范围 [road],主角车 [hero],敌车 [enemy],还有公里板 [kilo],失败提示 [failbub]

我们创建了一个 GameBoard 的组件,用于建立整个游戏场景,你也可以建立多个子组件,比如主角赛车,敌方赛车,公里板,再在 Gameboard 中引入子组件。

本教程案例相对简单,我们只创建一个组件,也能更容易理解代码逻辑。

React 自带了一些事件处理函数,如

getInitialState() //组件初始化数据

componentWillMount() //组件渲染前调用

componentDidMount() //组件渲染后调用

render() //组件渲染

而 render 函数中,将返回我们页面所有的 html 结构

下面我们用一个简单的例子帮助大家理解 React 的工作流程

var GameBoard = React.createClass({

getInitialState : function(){

return {

gameState : 0

}

},

gameStart : function(){

this.setState({

gameState : 1

})

},

render : function(){

return

}

});

ReactDOM.render(,document.getElementById("reactGame"));

在上面的例子中,我们在 getInitialState 函数中初始化了 state.gameState:0,在 render 函数中,我们对 div 的 className 做了一个三元表达式的判断,如果 gameState 为0,表示游戏未开始,渲染出的 html 结构为

php赛车游戏开发文档,React 开发一款简单的赛车游戏相关推荐

  1. 微信小程序游戏开发文档以及开发工具地址

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 微信官方于 2017 - 12 - 28 日 开发微信小程序 开发小游戏 , 微信小程序小游戏开发官方 ...

  2. python飞机大战概要设计_飞机大战游戏开发文档(Android版)

    飞机大战游戏 开发文档 (Android版) 课程名称:飞机大战游戏 课程类型:Android游戏编程精彩内容,尽在百度攻略:https://gl.baidu.com 姓名:苏均灿 学号:131342 ...

  3. Unity游戏开发文档(3.1.1):弹窗效果

    前言      该文档为<Unity游戏开发文档(3):Dancing Line>的附属文档,亦可看作是单独的技术总结文档. 目录 综述 对话框的非匀速滑动 对话框动画的异步运行 最终效果 ...

  4. Unity游戏开发文档(3.1.3):滚动式关卡选择菜单

    前言      该文档为<Unity游戏开发文档(3):Dancing Line>的附属文档,亦可看作是单独的技术总结文档. 目录 综述 构建滚动菜单 读取关卡信息 填充菜单选项 选项自动 ...

  5. Unity游戏开发文档(3.1.2):下拉式音乐选择菜单

    前言      该文档为<Unity游戏开发文档(3):Dancing Line>的附属文档,亦可看作是单独的技术总结文档. 目录 综述 构建下拉菜单 填充下拉菜单 切换背景音乐 最终效果 ...

  6. 前端开发文档(开发之前个人的准备)

    前言: 前端开发文档,目前自己正在开发的项目之前的个人准备,按照自己的开发习惯来编写,有问题或者不足的地方还望指出,谢谢~ 如有侵权,实属无意,请立即联系,立删. 环境搭建 需要准备的软件 a. No ...

  7. 微信小程序开发文档和开发工具放出破解版-亲测可用

    废话不多说,直接上衔接 1,微信小程序开发文档 现阶段最全的开发文档了 http://wxopen.notedown.cn/api/notice.html 2,开发工具 https://github. ...

  8. java小组坦克大战游戏开发文档开发日志_java实现坦克大战游戏

    本文实例为大家分享了java实现坦克大战游戏的具体代码,供大家参考,具体内容如下 一.实现的功能 1.游戏玩法介绍 2.自定义游戏(选择游戏难度.关卡等) 3.自定义玩家姓名 4.数据的动态显示 二. ...

  9. 火力篮球游戏源码完整版-带游戏开发文档

    火力篮球,通过模拟现实中的投篮游戏机,而投篮游戏机又是源于街头篮球,街头篮球起源于美国,现在已经流行于世界的体育竞技项目,将投篮部分独立出来做成投篮游戏机.成为了专门的投篮类游戏设备.而本游戏就是将该 ...

最新文章

  1. wxpython有没有可视化设计_wxPython - GUI Builder工具( GUI Builder Tools)
  2. NASA前掌门蛰伏10年 打造非冯·诺伊曼架构芯片
  3. 艾伟_转载:使用LINQ to SQL更新数据库(上):问题重重
  4. C# 类的几种方法调用
  5. PROC系列之---/proc/pid/stat
  6. 董海冰:2018风云再起 ,期待AV1、AI和AR
  7. 《Matlab实用案例》系列Matlab从入门到精通实用100例案例教程目录(持续更新)
  8. 设计模式:001面向对象设计原则
  9. php json函数参数传递,JSON作为函数参数时应该如何使用
  10. 不会吧?!新版本longhorn部署需要k8s.gcr.io镜像?
  11. 用Java做一个判断闰年和平年代码
  12. Canvas-lms 开源在线学习管理系统源码部署(生产版)
  13. 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台
  14. 微信小程序 data 赋值
  15. 内置式永磁电机maxwell2d_「仿真」永磁同步电机仿真(实操三)Maxwell 2D 静态磁场仿真...
  16. 阿里云云服务器使用须知(全套详解)
  17. 每个程序员应该知道的计算机网络知识
  18. 开源风暴吞噬AI界?从Stable Diffusion的爆火说起
  19. linux下matlab问题及解决
  20. linux进程流量检测,linux使用shell检测并记录网卡流量

热门文章

  1. 《Python笔记》安装(pip)第三方包报错
  2. Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
  3. linux驱动开发学习2 设备树
  4. 安卓 linux it之家,IT之家安卓版 7.07:紧凑排版+适配华为小米魅族OV系统级推送等...
  5. 一个项目中不能同时出现两个main函数
  6. QGC地面站二次开发(一)地面站介绍以及软件框架(1)地面站使用介绍和接口介绍
  7. 程序员再也不用抢月饼了~
  8. 老板,你知道APP是怎么死的吗?
  9. [unity] Tween和IEnumerator
  10. 第二证券|两大板块掀涨停潮,有个股猛拉20cm!这只港股复牌一度暴跌