Web App:波的叠加演示

最近物理学到波的叠加了。什么是波的叠加呢?简而言之,就是两个波传递到相同质点时,对该质点产生的共同作用。
课堂上,物理老师使用flash动画为我们演示了正弦波的叠加方式。不过由于演示程序的用户体验不佳、学校电脑较难操作、老师使用不当等种种原因,为了播放这个动画,老师可费了不少功夫。由于我本来就对这部分内容比较感兴趣,所以抽空研究了一下,用HTML5 + JavaScript制作了一个Web App,用于演示波的叠加。截图如下:

波的叠加演示 截图之一

阅读全文 →

分享到 评论

JavaScript计算圆周率(解析几何+定积分)

最近数学预习到选修本的定积分,前一向用它解决了物理上的正弦交流电有效值问题,前几天突发奇想,想用它来计算圆周率。于是我花了半节物理课的时间研究了一下,得出了以下求解方法。

首先我们知道半径为r,圆心为(0, 0)的圆的方程是:

圆的方程

不过这个是个方程,无法使用积分求解,所以我们要对它进行变形,变成一个函数。根据本人多年刷题经验,要把其变为函数,只需取一个半圆即可,获取半圆则需将其变形为:

半圆的方程

阅读全文 →

分享到 评论

Python开发接水果小游戏

我研发的Python游戏引擎Pylash已经更新到1.4.0了。现在我们就来使用它完成一个极其简单的小游戏:接水果。以下是游戏截图:

接水果 游戏截图

游戏操作说明:点击屏幕左右两边或者使用键盘方向键控制人物移动,使人物与水果接触得分,碰到非水果的物品,如碎玻璃,就会game over。

创建项目

首先在工作目录创建一个名为get_fruits的目录。然后到Github下载Pylash。引擎是基于Python3和PyQt4构建的,所以在使用前请确保你使用的是Python3并且安装了PyQt4。如果没有,可以在上述项目地址中找到他们的相关网页链接进行下载安装,安装和配置步骤都十分简单。这里不再赘述。

下载完Pylash后,我们得到这样的目录结构:

1
2
3
4
5
6
7
+- pylash_engine/
|
+- pylash/
|
+- demo/
|
+- examples/

阅读全文 →

分享到 评论

使用lufylegend实现游戏中的卷轴

什么是卷轴

玩过RPG或者横版格斗的同学应该知道,人物走到屏幕中央后,由于地图过大,地图会进行移动,人物则相对静止不动。这个就是传说中的卷轴。例如下图是我的游戏“三国战线”里的卷轴:

三国战线卷轴 截图之一

三国战线卷轴 截图之二

有了以上的简介,大家应该明白了什么是卷轴。说白了就是镜头跟随主角的效果。接下来,我们就利用lufylegend.js游戏引擎来实现这个效果。

阅读全文 →

分享到 评论

JavaScript类的小小研究

基础知识

JavaScript中的类

JavaScript实际上是一种弱类型语言,与C++和Java等语言不同。因此,在JavaScript中,没有强调类(class)这一概念,但实际运用中,类还是很重要的,比如写一款游戏,如果我们不停地调用函数来完成创建角色,移动角色的话,那会是什么样的呢?可能会出现非常多的重复代码,因此我们需要一个类来统一这些代码。所谓的类,就是把程序中的代码分类,比如说游戏中的关于角色的代码算作一类,游戏背景算作一类,游戏特效又是一类。这样一来,我们对类进行操作,就不会使代码显得很凌乱,冗杂。虽然Js是弱类型语言,但是也提供了类这一概率。
定义Js中的类,实际上用的是function,总所周知,这个语法其实是用来定义函数的。不同于定义函数的是,我们可以在function中通过this.xxx的方式来定义属性和方法。比如说:

1
2
3
4
5
6
7
function People () {
this.name = "Yorhom";
this.getName = function () {
return this.name
};
}

阅读全文 →

分享到 评论

Hello World

今天是2016年2月4日,我的独立博客建立了,欢迎各位关注~

本博客使用Hexo构建,感谢PPOffice同学提供博客主题。

希望以后能写出更多,更好的博文~ 分享学习和生活中的精彩!

阅读全文 →

分享到 评论