<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>陈轶的盛夏厅 &#187; 编程</title>
	<atom:link href="http://blog.chenyi.me/blog/category/computer/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chenyi.me</link>
	<description>骐骥一跃，不能十步；驽马十驾，功在不舍。</description>
	<lastBuildDate>Fri, 10 Feb 2012 07:13:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>iOS开发一周半</title>
		<link>http://blog.chenyi.me/blog/11446</link>
		<comments>http://blog.chenyi.me/blog/11446#comments</comments>
		<pubDate>Thu, 02 Jun 2011 08:21:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.chenyi.me/blog/11446</guid>
		<description><![CDATA[自从上周一心血来潮开始写iOS的代码，已经坚持了一周半了。

当然学习iOS的东西更早之前就开始了，因为是全新的语言，所以一开始就处于随时准备打退堂鼓的状态中，结果ObjC学起来还算顺利。虽然困难不少，但水滴石穿，居然也被我死皮赖脸地学下来了。

但学会了一门语言是一回事，做一个东西又是另外一回事。我Java都玩了这么多年了，自己做出来玩的东西，几乎没有。半途而废的项目有几个，真的要做也是可以的，但从我以往的经验看，费了那么多力气，死了那么多脑细胞，掉了那么多头发，花了那么多时间，总得有所交代，如果投入没有产出，不如不做。

倒不是功利，只是人生就得有所选择：打游戏喝茶吃饭就算是浪费时间吧，也未必比写一个无意义的软件更浪费时间。

就这样，不断拷问自己，要不要写点东西出来，怎么写，写什么，写出来有什么用。于是就踌躇了，犹豫了，彷徨了。

<span class="readmore"><a href="http://blog.chenyi.me/blog/11446" title="iOS开发一周半">阅读全文——共1640字</a></span>]]></description>
			<content:encoded><![CDATA[<p>自从上周一心血来潮开始写iOS的代码，已经坚持了一周半了。</p>
<p>当然学习iOS的东西更早之前就开始了，因为是全新的语言，所以一开始就处于随时准备打退堂鼓的状态中，结果ObjC学起来还算顺利。虽然困难不少，但水滴石穿，居然也被我死皮赖脸地学下来了。</p>
<p>但学会了一门语言是一回事，做一个东西又是另外一回事。我Java都玩了这么多年了，自己做出来玩的东西，几乎没有。半途而废的项目有几个，真的要做也是可以的，但从我以往的经验看，费了那么多力气，死了那么多脑细胞，掉了那么多头发，花了那么多时间，总得有所交代，如果投入没有产出，不如不做。</p>
<p>倒不是功利，只是人生就得有所选择：打游戏喝茶吃饭就算是浪费时间吧，也未必比写一个无意义的软件更浪费时间。</p>
<p>就这样，不断拷问自己，要不要写点东西出来，怎么写，写什么，写出来有什么用。于是就踌躇了，犹豫了，彷徨了。</p>
<p>最后终于动手，是啥原因呢，是我犯贱又在胡说要写个程序去卖钱（这年头最容易把软件卖钱的平台只有一个，就是AppleAppStore），老大泼冷水，如果只是说卖代码卖不出钱（事实上十有八九的确也卖不到钱）我也就认了；问题是她说卖到了钱电子产品随便买。</p>
<p>这个叫打蛇打在七寸上。因为我的罩门之一就是过一阵子就想买电子产品，心里明白有些东西买回来搞不好又是一摆设，手里又痒得不行，为了克服自己这一个弱点，办法是码字，把想买的东西优点缺点全部写下来，这心也就冷了，但这办法是堵，俗话说堵不如疏。</p>
<p>所以老大的话，算是我给自己找了一个理由，开始再一次三分钟热度写一个无意义的软件。</p>
<p>这次也没有找朋友撺掇加盟一起发财，心里明白自己不过是三分钟热度，自娱自乐还行，把朋友拉进去那叫浪费别人的时间。</p>
<p>一开始有点担心自己有没有时间来做这个东西，下班以后再编程会不会太累，但尝试了一周半以后发现还行。主要是实际操作的东西比较多，东摸摸，西摸摸，各种尝试，遇到问题解决问题，乐趣还是不少，也不累。学习新东西本来就是我的爱好之一。感觉也充实。</p>
<p>也没啥压力，玩个一小时的编程以后就开始玩游戏或者看电影，反而要比原来吃过晚饭就打游戏要来得充实，感觉至少还做了点事。劳累的问题，本来是有点担心的，OnlyWorkNoPlay，JackBecomeDullBoy，但实践下来其实还行。加上我有做笔记的习惯，每次不在于多学多少东西多写多少代码，而是总有收获，这收获记录在笔记里，一个是不容易忘记技术细节，一个是自己看看也觉得舒坦，我记性不好，经常忘了昨天干了什么事情，写下来，也觉得日子每天都很充实。</p>
<p>这次选的题材，相当地简单，一个是第一个App不想搞太复杂的，不想一口气吞只牛，第二个是自从用上了iPad以后，明白了啥叫少就是多，关键是解决问题而不是堆砌功能。哪怕只有一个界面，只要是用户需要的东西，就够了。</p>
<p>希望这个App我能够坚持完成它，想来问题也不大。几个原因导致我有信心完成它：</p>
<p>1，没啥界面设计，美工是我弱项，但目前做的这玩意几乎不需要美工</p>
<p>2，需求我已经冻结了，为了防止每次都人心不足蛇吞象，我第一步就是冻结住需求</p>
<p>3，iOS开发的代码量很小，很多东西都已经傻瓜化，有现成的框架可以套。</p>
<p>但进度上，我不想逼自己，捞钱的时机早就过了，就我这种三脚猫，想要捞钱颇有点花痴的感觉。再说了，生活环境如此的宽松，自娱自乐最重要；发财发财发大财虽然是我的梦想，但反正我也没本事发大财，不如索性放松点别想太多。</p>
<p>因为我的博客很成功（因为我的成功的标准是自己经常写，而不是别人经常看），所以准备延续博客成功的经验：也就是不为别人写，不为钱写，不为流量写，只为自己写。</p>
<p>有乐趣的事情，才能坚持得下来。我也没啥事业，目前看来，我的博客就是我最成功的事业；如果App可以成为我第二个成功的事业，我觉得，也挺好。</p>
<p>前几天老大松口了，说，你要买啥就买吧。我说，你错了，我其实并不想买啥，我只是想找人聊聊这些电子产品而已，只有真正的那种能改变生活的东西，我才会去买；而iOS开发这事，其实和赚钱买硬盘啥关系没有，我只是需要个理由而已。</p>
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/11446；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/11446/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>XCode的替代品JetBrains AppCode</title>
		<link>http://blog.chenyi.me/blog/11424</link>
		<comments>http://blog.chenyi.me/blog/11424#comments</comments>
		<pubDate>Sun, 10 Apr 2011 12:10:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.chenyi.me/?p=11424</guid>
		<description><![CDATA[嗯，这个是我最近在玩一个开发工具，本来没有打算写在博客上，是跑去CocoaChina论坛贴了一个帖子，写完以后，本着自己对论坛的不信任的原则，决定在自己的博客上备份一个帖子

JetBrains的AppCode是一个新的ObC的IDE，刚刚出了第一个版本，连Alpha测试版都不是，所以很多问题，不过依然值得一试。

官方网站：http://www.jetbrains.com/objc/

优点：

拥有JetBrains贯穿于多个产品线的强大的代码重构；如果你是JetBrains的老用户，比如Java的IntelliJ IDEA，Python的PyCharm，Ruby的RubyMine，你都可以发现以往的快捷键和大部分的代码重构都在。

<span class="readmore"><a href="http://blog.chenyi.me/blog/11424" title="XCode的替代品JetBrains AppCode">阅读全文——共1794字</a></span>]]></description>
			<content:encoded><![CDATA[<p>嗯，这个是我最近在玩一个开发工具，本来没有打算写在博客上，是跑去<a href="http://www.cocoachina.com/bbs/read.php?tid-53632.html" target="_blank">CocoaChina论坛</a>贴了一个帖子，写完以后，本着自己对论坛的不信任的原则，决定在自己的博客上备份一个帖子</p>
<p>JetBrains的AppCode是一个新的ObC的IDE，刚刚出了第一个版本，连Alpha测试版都不是，所以很多问题，不过依然值得一试。</p>
<p>官方网站：<a href="http://www.jetbrains.com/objc/" target="_blank">http://www.jetbrains.com/objc/</a></p>
<p>优点：</p>
<p>拥有JetBrains贯穿于多个产品线的强大的代码重构；如果你是JetBrains的老用户，比如Java的IntelliJ IDEA，Python的PyCharm，Ruby的RubyMine，你都可以发现以往的快捷键和大部分的代码重构都在。</p>
<p>对于不熟悉JetBrains的朋友，我举几个例子来说明，因为我对XCode不熟而且是Java程序员用词可能不符合ObjC的习惯，所以错漏之处请指教。另下文所述的快捷键是在AppCode中将KeyMap设置为“IntelliJ IDEA”而不是“Default”。</p>
<p>1，代码自动生成。<br />
比如声明一个@property，一般我们需要在.m文件中添加@synthesize，让光标停在propterty行，按一下ctrl＋n，唤出菜单，即可秒添加相应的Synthesize代码。其他的还有overwrite父类方法，实现父类接口，都是同一个热键唤出菜单，在按两下上下键和回车键就搞定了，不需要鼠标。<br />
2，代码跳转功能。<br />
使用cmd＋f12可以列出当前类的树结构，直接输入变量名或函数名快速定位（直接通配符），回车即可快速跳转到对应位置。ctrl＋上下键，是在函数间快速跳转。cmd＋n可以直接搜索类（支持通配符）<br />
3，代码重构。<br />
选择代码块，按opt+cmd+m，可以将代码块直接extract成一个方法。同样的操作对变量也适用。按代码块添加异常捕捉，也只需要一个热键，甚至连异常处理代码中连NSLog也已经自动生成（选中状态，也就是如果你不喜欢的话可以直接无视这个NSLog直接输入自己的代码）。</p>
<p>对于键盘流的爱好者，我需要指出一点：AppCode是一个真正的键盘流的IDE，可以让你摆脱鼠标的束缚。<br />
我是从这个公司出品的Java IDE：IntelliJ IDEA得出这个结论的，目前AppCode版本连Alpha版本都算不上，所以可能有些地方还是会不够键盘流，但这个公司的设计灵魂会保证它第一个正式版一定是键盘流的。<br />
XIB的界面设计功能摆脱不了鼠标，但界面代码其实是可以不用InterfaceBuilder而全部手写的（Java里面所有的界面代码我都是手写而不是借助任何界面设计工具，这个问题上我可能是特例）。</p>
<p>缺点：<br />
严重依赖于XCode：XIB和PList文件都需要打开XCode编辑；在代码直接查看快速帮助时如果点帮助中的链接，会跳转到XCode中的Organiser中。更糟糕的是，切换过程中会造成XCode频繁提示Crash，虽然多按几次Continue，但也够烦心的。</p>
<p>最后一点，AppCode是个Java程序。。。用Java写一个ObjC的IDE，这一点蛮搞笑的。</p>
<p>最后贴一张官方的截图，这个截图中演示的是个自动纠错功能，AppCode发现一个没有被定义的变量，提出了4种解决方案，用户用上下键选一下然后回车即可更正。我试了一下，虽然XCode号称有自动纠错的功能，但我没有找到类似的功能（请指教）。XCode需要编译代码才能发现这个变量未声明的错误，而AppCode无需编译就能发现这个错误，并给出自动修复的办法。<br />
<img class="alignnone" title="CIDR-Quick-fixes" src="http://confluence.jetbrains.net/download/attachments/38962532/CIDR-Quick-fixes.png" alt="" width="707" height="583" /></p>
<p>&nbsp;</p>
<p>AppCode的代码重构，有点像MacOS上著名的TextMate（我没用过这玩意，但仔细看过他们的ScreenCast），吧唧按一个快捷键会帮 你生成一堆的代码，自动把光标移动需要输入的位置，当第一个输入完成以后，按一下Tab键，会跳转到第二个需要输入的位置，如此循环直到全部完成。</p>
<p>举例而言，按一下Cmd＋j（或者菜单里面选一下），输入alloc（或者在上下文菜单中选一下），回车，生成代码</p>
<p>[[ alloc] init]</p>
<p>光标会自动移到&#8221; alloc&#8221;前面，</p>
<p>然后输入类名（这里还有自动完成，输入头几个字符以后会把以这几个字符开头的类全部列出来给你选），输完按回车，就会跳转到&#8221;init]&#8221;后面，等待用户进一步输入。</p>
<p>如果你是TextMate用户，你应该很容易理解我在说什么。
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/11424；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/11424/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IntelliJ IDEA 推广 介绍 入门</title>
		<link>http://blog.chenyi.me/blog/11047</link>
		<comments>http://blog.chenyi.me/blog/11047#comments</comments>
		<pubDate>Thu, 25 Feb 2010 04:38:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/11047</guid>
		<description><![CDATA[注：这文章写得太水了。周日和ZY的一场不太和谐的争论以后，我决定尝试一下Eclipse，结果发现Eclipse其实也有不少技巧，我只是不知道它们而已。还发现了一篇Terse Systems : Why IntelliJ IDEA sucks，是一个Eclipse的重度用户攻击IDEA不好用的文章，请关注它的评论中有不少有趣的反击。总之IDEA现在看来，是个好工具，不过并没有到艳压群芳的地步，我只是井底之蛙，发现了一片天空，以为就是一个美丽新世界而已。文章依然保留，就当是蝴蝶拍了一下小翅膀。

IntelliJ IDEA似乎还不是一个很流行的Java IDE，因为最近两年来，一直在使用它，渐渐得有了一些心得。想，也许我应该写一点东西来推广一下它。

为什么我会这么推崇IntelliJ呢？原因是，它能够做到超高效率的编码。

<span class="readmore"><a href="http://blog.chenyi.me/blog/11047" title="IntelliJ IDEA 推广 介绍 入门">阅读全文——共4091字</a></span>]]></description>
			<content:encoded><![CDATA[<p><strong>注：这文章写得太水了。周日和ZY的一场不太和谐的争论以后，我决定尝试一下Eclipse，结果发现Eclipse其实也有不少技巧，我只是不知道它们而已。还发现了一篇Terse Systems : <a href="http://tersesystems.com/post/5700058.jhtml" target="_blank">Why IntelliJ IDEA sucks</a>，是一个Eclipse的重度用户攻击IDEA不好用的文章，请关注它的评论中有不少有趣的反击。总之IDEA现在看来，是个好工具，不过并没有到艳压群芳的地步，我只是井底之蛙，发现了一片天空，以为就是一个美丽新世界而已。</strong>文章依然保留，就当是蝴蝶拍了一下小翅膀。</p>
<p><a href="http://www.jetbrains.com/idea/index.html">IntelliJ IDEA</a>似乎还不是一个很流行的Java IDE，因为最近两年来，一直在使用它，渐渐得有了一些心得。想，也许我应该写一点东西来推广一下它。</p>
<p>为什么我会这么推崇IntelliJ呢？原因是，它能够做到超高效率的编码。</p>
<p>IntelliJ IDEA的宣传单上有一句话：“我们与其他软件不一样，我们的默认快捷键是精心设置过，如果您以前使用的其他IDE和我们的快捷键不同，请尝试一下我们的。”我想说的是，这句话并没有任何言过其实。</p>
<p>IntelliJ的快捷键，是一种容易上瘾的东西，花10分钟到半小时学习一下，你会发现自己从此就不需要鼠标了。</p>
<p>首先举一个搜索的例子：</p>
<blockquote><p>您忘了工程里一个类位于哪个包下，很简单，<strong>ctrl + n</strong>，输入类名，IntelliJ会帮你搜索。不仅如此，它还支持星号和问号通配符。更简单的，对于ImportDataNodesQuickAction这样的类，您可以输入IDNQA（所有的大写字母），或者ImportDNQA（相当于省略了星号的通配符）。超强。</p>
<p>如果您想找的是个资源文件比如图片，而不是一个Java类，很简单，<strong>ctrl+shift+n</strong>，输入关键字。</p>
<p>如果您想找的既不是类又不是文件，而是Java类里面的一个函数名或一个全局变量，很简单<strong>ctrl +alt +shift +n</strong>，输入关键字。</p></blockquote>
<p>JBuilder下有个强大的功能就是模板。输入数个字符就可以生成一大段代码。IntelliJ IDEA更是把这个做到极致。请让我介绍一下它的Live Template功能。</p>
<p>当您第一次尝试IntelliJ，第一个程序当然是HelloWorld。</p>
<blockquote><p>那么main函数您怎么写，挨个敲入<span style="text-decoration: underline;">public static void main(String[] args)</span> ？太长了太长了，在IntelliJ下您这样做：</p>
<p>首先按<strong>ctrl+j</strong>，出现一个下拉框，别理他，接着输入<strong>psvm</strong>，回车。怎么样，所有的代码都有了。光标还自动停在了你准备编码的位置上！</p>
<p>然后您一定是准备输入：<span style="text-decoration: underline;">System.out.println(&#8220;Hello World&#8221;);</span> 然后再添加import java.lang.System申明 ？在IntelliJ下面您这样做：</p>
<p>依旧按<strong>ctrl+j</strong>，接着输入<strong>sout</strong>，回车。自动生成了代码不说，连Import都帮您自动完成了！光标还停在println(&#8220;的位置上，就等着您直接输入Hello World。</p></blockquote>
<p>如果您坚持看到这里，毫无疑问，您是一位Java程序员，这点小伎俩当然无法让您留下哈喇子，那么我接着来点猛料。</p>
<p>好了，下一步，我们建一个类，让它实现Runnable接口。首先建立一个新类ThreadTest （这个貌似没有快捷键，我们不应该这么懒对不对）</p>
<blockquote><p>第一步，当然是在类名后加上<span style="text-decoration: underline;">implements Runnable</span>, 请只输入前两个字符im，然后按<strong>ctrl+空格</strong>，（唔，中文输入法出来了是不是？请您把中文输入法的快捷键改成别的或者去掉，您依然可以用ctrl+shift来切换输入法），您看自动完成了implements ，然后输入Ru，按<strong>ctrl+空格</strong>您看Runnable也自动完成了。</p>
<p>先别急着换行什么的去实现方法，听我号令。您看到public class ThreadTest implements Runnable下面有一道红线是不是？这时候按<strong>alt+回车</strong>，出现一个下拉框，有两个选项“Implement Methods”和“Make ThreadTest abstract”，直接回车，再回车。。。</p></blockquote>
<p>您看到了，这工程就是全自动贵宾式服务。以上其实介绍了两个快捷键，<strong>ctrl+空格</strong>和<strong>Alt+回车</strong>。。。一个是自动完成：一个是自动纠错（它不只是帮您实现方法，它还可以帮您添加异常检测，帮您Import工程库，一键式服务，搞定多种难题：难言之隐，一键了之），。总之有了这两个利器，您变成超级大懒虫指日可待。。。IntelliJ IDEA的口号是Develop with pleasure！什么意思，就是出门有人帮开车，进门有人帮拎包，开房有人帮您叫小姐。。。前面这些只是冰山一角，还有很多快捷键充当皮条客为您服务。而这些<a href="http://www.jetbrains.com/idea/docs/IntelliJIDEA9_ReferenceCard.pdf">皮条客的名字</a>绝对不会像VIM那样难记（不知道VIM是什么东东请无视这一句）。</p>
<p>IntelliJ IDEA，乃是杀人放火打家劫舍之利器。</p>
<p>当然了，对高级用户而言，特别是Eclipse用户而言，能够支持各种奇怪的需求才是王道，比如Ant，比如Maven，比如JAXB，比如UML。。。这些也没有任何问题，且听下回分解（<em>有没有下回，就看有没有回帖了；当然不排除自己犯贱的可能性</em>）。</p>
<p>最后说一句，这玩意有商业版和开源社区版。在<a href="http://www.jetbrains.com/idea/download/index.html">这里</a>下载。</p>
<hr />IntelliJ的缺点：</p>
<p>1，内存占用大大的。。。在我的3G的内存的办公机上，有时候也会慢得我受不了重启IntelliJ。。。当然这个也取决你的工程有多大（公司的工程有8400多个文件，81万行代码）。我的IBM T43跑只有几个文件的小工程就从来没有慢到要重启。</p>
<p>2，界面设计器和JBuilder的思路不同，采用一种特有的XML方式存取界面，总之不推荐使用。因此我练就了手写GridBagLayout参数的基本功。</p>
<p>3，IntelliJ启动的时候会扫描工程中所有Java类的结构，然后用在它超强的搜索里面。因此如果您的工程有百万行代码的话，启动时间就至少有30秒之多。当然启动完了以后，一切都会好起来的。</p>
<hr />关于为什么不使用EMACS</p>
<p>楼下回复提到EMACS，作为一个连VIM我都没能摸熟的菜鸟，我当然没用过EMACS。。。shame。。。</p>
<p>但是我有了一些想法，决定写下来。我有个朋友跟我说，写代码，NotePad就够了。还有一个朋友跟我说，不能依赖编译器，你得在编译器帮你检查出错误之前自己用眼睛挑出来，更进一步，你必须一边写代码一边就在查错，这样才能保证代码的正确性。我得说，这些话都是对的。但是IDE这种东西之所以存在，就是因为我这样的菜鸟程序员太多。如果程序员也有末尾淘汰制，每年一定会有一群IDE爱好者被赶出程序员队伍，并强制转行为皮条客。（只有更左没有更左，IDE爱好者被赶尽杀绝的一天，下一步就应该轮到VIM爱好者，哈哈哈。）</p>
<p>您看，我如果有练过EMACS，当然不屑于IntelliJ了，问题就在于EMACS至少要闭关数年，方能神功炼成天下无敌。天下无敌是爽，但是IntelliJ只要练30分钟可以出去试试能不能把比武招亲的姑娘搞定了，所以我爽在前面您爽在后面。</p>
<p>IntelliJ有个有趣的地方就是：它的门槛低，快捷键虽然有上百个，但是一个不会都没关系，照用。。。我就在没用快捷键的日子里度过了好长一段日子，慢慢地，发现了一些有趣的键，然后是发现另外一些，然后，你永远不知道什么时候能够发现一些你不知道的好姑娘。。。我之所以在用AutoHotKey绑定系统热键的时候专挑Win键，一个非常重要的原因就是我的IntelliJ热键知识还在不断增长中；我不喜欢某一天我在IntelliJ里面按ctrl + p试图查看函数参数时，却跳出个截图软件出来。</p>
<p>对EMACS，我想说的，尺有所短寸有所长，您牛人配置出ctrl + 空格这样懒人自动完成键一定是超级容易的（或者从上千个命令中秒检出一个适用命令），我的小小的不成的。这里有一篇：<a href="http://www.devx.com/Java/Article/16364">10个用EMACS蹬掉Java IDE的理由</a> ，写得真是太好了，太牛了，可是对我不管用：小子我刚刚学会开小轿车，就让我控制洲际导弹，我玩死自己是铁板钉钉。</p>
<p>其实我拼死抵赖，也无法改变我强词夺理的本质。人类之所以能进步，就在于能够学习。正如楼下向我推销EMACS，就如我向JBuilder用户推销IDEA一样。从这一点来说，我在狠狠地抽自己的嘴巴。</p>
<hr />我用过的Java的IDE有这么几种：JBuilder用的时间最长，用了6年。Eclipse和NetBeans都用的时间不算太多，一共加起来可能只用了1年不到，还是为了在澳洲找工作准备的，NetBeans没啥印象，Eclipse强大的插件功能让我五体投地，有一阵子我甚至有可能成为它的忠实用户，直到IntelliJ IDEA的出现。</p>
<p>我用IntelliJ IDEA，最开始是被迫的，因为公司要求用，而且是花钱买的正版（公司也有人在用正版的JBuilder，但是很快这家伙也迁移到IntelliJ IDEA上来了）。一开始我并不喜欢它，慢慢得就离不开它。</p>
<p>作为一个JBuilder的用户，我最喜欢的几个功能是：强大的界面设计器；快速查找类的位置。其他功能我用得很少很少。</p>
<p>迁移到IntelliJ以后，我遇到两个问题：</p>
<blockquote><p>1，界面设计器没了，这个很让我失望。（也不是完全没有，IntelliJ提供了一个New GUI Form/ GUI Dialog设计器，但我研究一下表明，这设计最后是保存为xml文件，也就是不通用。因此我直接忽略了这个功能。值得一提的是，IntelliJ IDEA提供了一个Ant任务包，让你可以脱离IntelliJ IDEA独立编译这些XML格式的界面文件）</p>
<p>2，另一个困难是：IDEA引入了模块的概念。这个在JBuilder貌似是没有的。模块的用途是让代码更清晰，模块的依赖性更明显，比如强制不允许服务器端模块去引用客户端代码否则就编译错误。这个理念对刚接触IntelliJ IDEA的我而言有点超前，过了挺长时间才明白模块的作用。</p></blockquote>
<p>虽然不是大问题，但是实实在在地打击了我。。。但风雨过后就会有彩虹，现在的我，腰也直了，腿也不抖了，吃饭蛮香，睡觉倍棒，您瞅准了，IntelliJ牌IDE，值得一试。
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/11047；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/11047/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>开始使用VIM</title>
		<link>http://blog.chenyi.me/blog/10990</link>
		<comments>http://blog.chenyi.me/blog/10990#comments</comments>
		<pubDate>Wed, 13 Jan 2010 06:49:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/10990</guid>
		<description><![CDATA[开始使用VIM写日记。

首先要感谢一下zhang sen朋友，此人在7月份的留言中，严肃地批评了我自甘堕落的思想，触动了我的灵魂，虽然我的传导神经太慢，但终于在5个月以后开花结果了。这个算不算蝴蝶效应？

今年，喔，应该说去年，其实是跨年度的，我体会到了键盘流的牛B之处。

虽然开始的时候感觉还是蛮痛苦的。因为需要学习的快捷键太多。

但是一旦开始体会到其中的好处以后，就再也回不去了。这个过程类似于你小车开惯了不可能再忍受挤公交一样，虽然考驾照的确痛苦。

<span class="readmore"><a href="http://blog.chenyi.me/blog/10990" title="开始使用VIM">阅读全文——共1102字</a></span>]]></description>
			<content:encoded><![CDATA[<p>开始使用VIM写日记。
<p>首先要感谢一下zhang sen朋友，此人在<a href="http://blog.chenyi1976.com/blog/10418#comments">7月份的留言</a>中，严肃地批评了我自甘堕落的思想，触动了我的灵魂，虽然我的传导神经太慢，但终于在5个月以后开花结果了。这个算不算蝴蝶效应？
<p>今年，喔，应该说去年，其实是跨年度的，我体会到了键盘流的牛B之处。
<p>虽然开始的时候感觉还是蛮痛苦的。因为需要学习的快捷键太多。
<p>但是一旦开始体会到其中的好处以后，就再也回不去了。这个过程类似于你小车开惯了不可能再忍受挤公交一样，虽然考驾照的确痛苦。
<p>一个简单的例子是在IntelliJ里切换光标的位置。原来我都是鼠标点来点去，或者通过上下左右键来移动光标。现在由一系列复杂的命令替换掉了，再配合搜索的热键，搜索跳转就和玩儿似的。
<p>刚进公司的时候，看Duc调试程序的时候，手很少碰鼠标的，噼啪噼啪就跳到某函数的位置上了，崇拜不已，又不好意思问他怎么弄的，以为自己至少短时间内没这个本事。直到09年中，我终于也认识到IntelliJ的键盘流。现在我也可以冒充高手了。这玩意很容易产生一种优越感，让人恨不得把IntelliJ的口号“Develop with Pleasure”印在T恤上招摇过市，大喊我也是键盘流。
<p>想到以前我还留恋JBuilder留恋得不行，挺可笑的。
<p>另外，昨天发现IntelliJ IDEA 9的开源社区版已经出来了。
<p>Eclipse没能有机会学习一下，还是有点遗憾的。现在Intellij开源，我更没理由去碰Eclipse了。
<p>这几天又把VIM给学了一把。这玩意更复杂，而且很多命令没啥道理。完全死记硬背。因为IntelliJ给我打了底，我知道投入时间学习绝对值得。所以这次学得分外投入。
<p>入门是通过<a href="http://blog.sina.com.cn/s/blog_46dac66f010005kw.html">善用佳软的这个文章</a>入门的。标准的傻瓜式的入门指南。一步一步来就好。
<p>做完教程的内容以后，决定通过使用过程来学习。遇到不知道的功能再查，平时看到也顺便记忆一下，不打算背诵一大堆的命令把自己搞晕。常用命令汇总到了GoogleDocs，只要是方便自己查询。
<p>所谓的常用命令对别人的参考作用有效，因为这玩意和每个人的学习进度有关系。
<p>一天下来，解决了好几个VIM使用上的小问题；虽然是小问题，不解决就是大麻烦，解决了就是大动力。这过程在切换到FireFox的时候体会最深了。一点点小小的好处就足够让我坚持下去，一点又一点，从此就会一条路走到黑。
<p>中文上用起来还是不如英文爽快，英文无论是按单词前进后退或者搜索，都比重要要好用许多。
<p>下一步是TotalCommander。这玩意配置起来据说也是超级麻烦。
<p>一转眼已经超过30岁直奔40岁，却为了点雕虫小技兴奋，想了一下，这种情况算什么呢，大器晚成？活到老学到老？或者是驽马十驾功在不舍？</p>
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/10990；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/10990/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Arduino初体验</title>
		<link>http://blog.chenyi.me/blog/10932</link>
		<comments>http://blog.chenyi.me/blog/10932#comments</comments>
		<pubDate>Wed, 16 Dec 2009 11:06:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/10932</guid>
		<description><![CDATA[周二，白天在医院补牙，晚上在二姑姑家打牙祭；回到家，抓紧最后几分钟，把Arduino的程序跑了起来。

Arduino是在淘宝上买的，很便宜，买了一个板子，面包板，线，还买了3个按钮开关一个发光二极管。一共貌似花了200多。

把USB接上电脑提示驱动安装不上。查了一下，发现Arduino下载的软件里面有个Driver目录，安装一把，搞定硬件驱动。

硬件驱动搞定以后，拿个发光二极管把13号口里面一捅，开始闪烁了，看来制造者已经按照Arduino官方要求内置了Blink程序。

然后启动Arduino编辑器，随便找了一个例子，改了一下，修改为2号口读取信号，如果为1，那么就闪烁，否则就不闪烁。编译通过，上传失败。研究了一下，发现是串口选择错误，改为COM6，上传成功，测试一切正常。

<span class="readmore"><a href="http://blog.chenyi.me/blog/10932" title="Arduino初体验">阅读全文——共549字</a></span>]]></description>
			<content:encoded><![CDATA[<p>周二，白天在医院补牙，晚上在二姑姑家打牙祭；回到家，抓紧最后几分钟，把Arduino的程序跑了起来。</p>
<p>Arduino是在淘宝上买的，很便宜，买了一个板子，面包板，线，还买了3个按钮开关一个发光二极管。一共貌似花了200多。</p>
<p>把USB接上电脑提示驱动安装不上。查了一下，发现Arduino下载的软件里面有个Driver目录，安装一把，搞定硬件驱动。</p>
<p>硬件驱动搞定以后，拿个发光二极管把13号口里面一捅，开始闪烁了，看来制造者已经按照Arduino官方要求内置了Blink程序。</p>
<p>然后启动Arduino编辑器，随便找了一个例子，改了一下，修改为2号口读取信号，如果为1，那么就闪烁，否则就不闪烁。编译通过，上传失败。研究了一下，发现是串口选择错误，改为COM6，上传成功，测试一切正常。</p>
<p>Arduino真的太简单了，硬件白丁真的上手毫无困难。</p>
<p>周三，一天没动窝，中午，妞妞的外公外婆过来一起吃饭。</p>
<p>下午试图写点东西出来，却遗憾地发现，完全没办法搞。</p>
<p>液晶模块12864的驱动找了半天才找到，但是硬件连线我一窍不通。</p>
<p>然后就想写一点PC端程序，但是Java默认没有串口驱动库，找了一下，在Arduino的目录下居然找到了一个库，问题是我不知道写这部分代码，用哪个类。</p>
<p>这些可以通过网络搞定的东西在没有网络的情况可谓一筹莫展。</p>
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/10932；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/10932/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>利其器</title>
		<link>http://blog.chenyi.me/blog/10820</link>
		<comments>http://blog.chenyi.me/blog/10820#comments</comments>
		<pubDate>Tue, 17 Nov 2009 11:36:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[电玩]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/10820</guid>
		<description><![CDATA[找到了一本不错的书，《Killer Game Programming in Java》（12M），上传到自己的服务器上了，下载速度不知道怎么样。

看完第一章：Chapter 1. Why Java for Games Programming?&#160; 为什么使用Java开发游戏？这个问题其实很重要，我用Java写游戏，只是因为我对这个工具最熟悉，而C对我难度太大，没时间去学（实际上也是可以的，但有时间我也倾向于学第二外语，而不是第二编程语言）。这一章解释了很多很重要的细节和理由，让我能够认识到，其实Java写游戏并不是那么差。

第二章：Chapter 2. An Animation Framework，几乎和Loon引擎一模一样的设计。就这一点，我也值得把这本书看完。详细解释了不少东西，特别是一些我知其然不知其所以然的细节。

<span class="readmore"><a href="http://blog.chenyi.me/blog/10820" title="利其器">阅读全文——共433字</a></span>]]></description>
			<content:encoded><![CDATA[<p>找到了一本不错的书，《<a href="http://chenyi1976.com/code/OReilly.Killer.Game.Programming.in.Java.May.2005.chm">Killer Game Programming in Java</a>》（12M），上传到自己的服务器上了，下载速度不知道怎么样。</p>
<p>看完第一章：Chapter 1. Why Java for Games Programming?&#160; 为什么使用Java开发游戏？这个问题其实很重要，我用Java写游戏，只是因为我对这个工具最熟悉，而C对我难度太大，没时间去学（实际上也是可以的，但有时间我也倾向于学第二外语，而不是第二编程语言）。这一章解释了很多很重要的细节和理由，让我能够认识到，其实Java写游戏并不是那么差。</p>
<p>第二章：Chapter 2. An Animation Framework，几乎和Loon引擎一模一样的设计。就这一点，我也值得把这本书看完。详细解释了不少东西，特别是一些我知其然不知其所以然的细节。</p>
<p>总之，好书一本，有志于写游戏的Java程序员可以看看。这书的作者的技术能力比我强。如果不是这样，我也不会喜欢上这书。</p>
<p>现在看起来，我的SLG项目一年都搞不完。</p>
<p>让我来愚公移山吧。</p>
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/10820；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/10820/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SLG开发进展（20091105）</title>
		<link>http://blog.chenyi.me/blog/10772</link>
		<comments>http://blog.chenyi.me/blog/10772#comments</comments>
		<pubDate>Wed, 04 Nov 2009 23:25:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[电玩]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/10772</guid>
		<description><![CDATA[好几天没有写东西了，证明我很忙。

SLG开发，其实是设计，取得的进展还是蛮大的。

其实我知道写这种东西没有太大意义，也没有多少人愿意看，但是就是忍不住写。

就算是开发日志好了。

感觉自己是不是在滥用脚本语言，现在我试图用脚本语言来控制角色战斗结果的计算。。。真的觉得自己在滥用这些东西，好像一个孩子得到了一个新奇的玩具，就到处带着希望能够用上。

<span class="readmore"><a href="http://blog.chenyi.me/blog/10772" title="SLG开发进展（20091105）">阅读全文——共1080字</a></span>]]></description>
			<content:encoded><![CDATA[<p>好几天没有写东西了，证明我很忙。</p>
<p>SLG开发，其实是设计，取得的进展还是蛮大的。</p>
<p>其实我知道写这种东西没有太大意义，也没有多少人愿意看，但是就是忍不住写。</p>
<p>就算是开发日志好了。</p>
<p>感觉自己是不是在滥用脚本语言，现在我试图用脚本语言来控制角色战斗结果的计算。。。真的觉得自己在滥用这些东西，好像一个孩子得到了一个新奇的玩具，就到处带着希望能够用上。</p>
<p>最大的进展是终于知道了如何整理自己的需求，在空想了好长时间以后，得到了一个很有扩展性的模块设计；但是对是不是足够灵活，依然一点底气也没有。</p>
<p>我不希望什么都搞得七七八八的时候，才发现没法改变哪怕一个微小的设定。比如说，我能不能把单兵作战的SLG改为魔法门英雄无敌那样的军团战，或者我能不能把军团在战场上划整为零。这样的要求，按照人的思维来说，其实很自然，但是放到代码里面，如果结构不好的话，那就是打死也没法实现的。</p>
<p>我担心的是，我没法发现那些潜在的需求，无论我希望做得多灵活。</p>
<p>现在看来，做一个炎龙骑士团并不是太难，特别是把时间长度拉长到5年的情况下。我完全可以用一年的时间来做设计。一年的时间来编码，一年的时间来测试。一年的时候来构建关卡数据。一年的时间来做美工。何况，开源项目哪个不是花了N年时间才逐渐成熟起来的？</p>
<p>难的其实是做一个能够满足未发现的需求的东西，以最小的改动来满足各种奇怪的需求。</p>
<p>目前的计划是，先把类图设计出来，然后用先有的SLG样本来检视这个设计，看是不是能够实现现有的这些需求。</p>
<p>这些样本是《炎龙骑士团2》/《魔法门英雄无敌3》（仅战斗场景，不含大地图场景）/《韦诺之战》/《魔兽世界》，最后一款不是SLG，不过我很喜欢它，希望能够把技能冷却时间这种设定引入到SLG里面。。。（想想看，冷却时间为30回合的大招，意味着您只要坚持到回合足够长，就可能绝地反击；反之，你得心急火燎地赶在敌人大招冷却之前干掉对方）。</p>
<p>做了一个列表出来：<a href="http://spreadsheets.google.com/pub?key=tnhnbry2VAMAUYN4NXBw3qw&amp;output=html">http://spreadsheets.google.com/pub?key=tnhnbry2VAMAUYN4NXBw3qw&amp;output=html</a></p>
<p>设计文档还是持续更新：<a title="http://docs.google.com/View?id=dcsbrwrb_239c8gh4hcg" href="http://docs.google.com/View?id=dcsbrwrb_239c8gh4hcg">http://docs.google.com/View?id=dcsbrwrb_239c8gh4hcg</a></p>
<p>思考的过程很有趣。。。</p>
<p>玩游戏是为了乐趣，写游戏也是为了乐趣；如果这个过程没有乐趣，那何必去做。</p>
<p>我已经而立，不惑在望，不抓紧时间做点自己喜欢的东西，实现自己的梦想，人生呼啦一下就会没了。。。做这个事情，不为了钱，不为了名，相信比我牛B的技术人员多了去了，做这个事情，只为了有朝一日能够对自己说，我也做了一点东西出来。
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/10772；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/10772/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SLG开发</title>
		<link>http://blog.chenyi.me/blog/10764</link>
		<comments>http://blog.chenyi.me/blog/10764#comments</comments>
		<pubDate>Mon, 02 Nov 2009 07:46:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[电玩]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/10764</guid>
		<description><![CDATA[想了一点技术上的东西，写在这里。

http://docs.google.com/View?id=dcsbrwrb_239c8gh4hcg

我会不断修改。直到我把所有的设计都定型以后才会开始编码。

我要最大化这个过程的乐趣。

其实，光是这些写下来的东西，让我自己也蛮惊讶的。

<span class="readmore"><a href="http://blog.chenyi.me/blog/10764" title="SLG开发">阅读全文——共179字</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.chenyi1976.com/wp-content/uploads/SLG_1079F/fd01.jpg"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="fd01" src="http://blog.chenyi1976.com/wp-content/uploads/SLG_1079F/fd01_thumb.jpg" width="407" height="254"></a> </p>
<p>想了一点技术上的东西，写在这里。</p>
<p><a title="http://docs.google.com/View?id=dcsbrwrb_239c8gh4hcg" href="http://docs.google.com/View?id=dcsbrwrb_239c8gh4hcg">http://docs.google.com/View?id=dcsbrwrb_239c8gh4hcg</a></p>
<p>我会不断修改。直到我把所有的设计都定型以后才会开始编码。</p>
<p>我要最大化这个过程的乐趣。</p>
<p>其实，光是这些写下来的东西，让我自己也蛮惊讶的。</p>
<p>1年之前，我绝对没有这些思想。</p>
<p>我现在处于又有想法又有能力的阶段。</p>
<p>5年为期，只要有心，必能成事。</p>
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/10764；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/10764/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>开发游戏的进展（20091101）</title>
		<link>http://blog.chenyi.me/blog/10757</link>
		<comments>http://blog.chenyi.me/blog/10757#comments</comments>
		<pubDate>Sun, 01 Nov 2009 10:10:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[电玩]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/10757</guid>
		<description><![CDATA[这几天很有趣。

首先是发现了一个《东东不死传说》，这个是个类似于《街头霸王》的2D格斗游戏。作者是个很有趣的人，我猜他几乎不懂编程，但他拥有执着。他使用的工具是2DFM，一个不需要编程就可以制作2D格斗游戏的工具。开发貌似开始于2006年，2009年8月终于结出果实；制作采用了真人照片加Photoshop的办法来获取素材，每个人物需要拍摄将近2000张照片加后期修正。作者写了一篇《用2DFM制作自己的格斗游戏》。

下载了一下，玩了一下，很有趣，完成度极高，有没有平衡性我不知道，但是每个人物的招式都很齐全，开场和获胜的动作都一应俱全。。。而真人的风格，让人实在是忍不住想笑。

他的下一个目标是类似《双截龙》的横版过关格斗游戏《怒之铁拳4》，使用的工具是OPEN BOR，同样也是一个不怎么需要编程，只要有图片音乐和想象力即可。

<span class="readmore"><a href="http://blog.chenyi.me/blog/10757" title="开发游戏的进展（20091101）">阅读全文——共1450字</a></span>]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/wCc3yaKaAk4&amp;hl=zh_CN&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wCc3yaKaAk4&amp;hl=zh_CN&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
<p>这几天很有趣。</p>
<p>首先是发现了一个《<a href="http://blog.sina.com.cn/s/blog_4a966c6d0100eodi.html">东东不死传说</a>》，这个是个类似于《街头霸王》的2D格斗游戏。作者是个很有趣的人，我猜他几乎不懂编程，但他拥有执着。他使用的工具是2DFM，一个不需要编程就可以制作2D格斗游戏的工具。开发貌似开始于2006年，2009年8月终于结出果实；制作采用了真人照片加Photoshop的办法来获取素材，每个人物需要拍摄将近2000张照片加后期修正。作者写了一篇《<a href="http://blog.sina.com.cn/s/blog_4a966c6d01000bg8.html">用2DFM制作自己的格斗游戏</a>》。</p>
<p>下载了一下，玩了一下，很有趣，完成度极高，有没有平衡性我不知道，但是每个人物的招式都很齐全，开场和获胜的动作都一应俱全。。。而真人的风格，让人实在是忍不住想笑。</p>
<p>他的下一个目标是类似《双截龙》的横版过关格斗游戏《<a href="http://blog.sina.com.cn/s/blog_4a966c6d0100fnje.html">怒之铁拳4</a>》，使用的工具是OPEN BOR，同样也是一个不怎么需要编程，只要有图片音乐和想象力即可。</p>
<p>然后是我把Loon游戏引擎的代码又看了一遍，思考了写SLG的难度，觉得难度不大。就是在《仓库番》的基础上，把Sokoban类替换掉，换成SLGController，再包含StageController和和MenuController，在StageController里面放置多个Layer：BackgroudLayer，BuildingLayer，SpriteLayout，CloudLayout（这个思想来自于NetBeans的VisualLibrary的）。SLG中一般有包括角色自动移动和对白的剧情交代部分，这一部分实际就是自动化工作，应该使用脚本来做。最后加入Rule，使用脚本语言来定制剧情，事件可以设置为回合开始，回合结果，角色移动结束，角色造成伤害等等很多中，为此就需要一个RuleEnvironment的类来getCurrentSprite等等（Rule这个东西还是加入现在这个公司才学会的，觉得应用范围真的很广）。很多细节还没有想好。</p>
<p>又问了一下ZC，做什么类型好，回答简明扼要，SLG，做起来简单可玩度又高。坚定了我弄SLG的想法。</p>
<p>上网查了一下《炎龙骑士团2》，居然百度有个贴吧，然后里面一堆的心得，除了修改器和攻略，居然还有我从来不知道的一些心得，里面的小讲究让我这个对炎龙2研究得蛮多的人也目瞪口呆，更有人写出了程序来提取游戏中图像资源。牛B。</p>
<p>重新<a href="http://tieba.baidu.com/f?kz=390431953">下载</a>了《炎龙2》。觉得开场的对白部分，可以考虑使用脚本来控制。就是一些小的地方还是不知道怎么弄。比如菜单怎么和游戏解耦合，能不能做到很方便地定制菜单的表现；回合结束时，炎龙2的模糊效果如何在我想好的框架内实现。</p>
<p>唔。</p>
<p>这些问题想得蛮头疼的。晚上出去散步的时候，甚至也放不下。老大安慰我，不要把自己搞得太累。的确，首先，罗马不是一天建成的。其次，做这个东西，其实就是玩一场游戏，不过这个游戏更有意思，更刺激，而游戏应该是让自己感到快乐，而不是感到负担。整个过程中，我应该让过程变成快乐，而不是苦恼。即使最终我什么也没有弄出来，至少把这个过程弄得开心一点才是正道。</p>
<p>更何况，我压根不相信自己弄不出来。</p>
<p>《东东不死传说》做了三年，一行代码没写都用了三年，我的计划就是5年好了。我要完整地复刻《炎龙2》，最大的难度不在于代码，而在于美工，我要重制高清晰度的角色图像包括战斗场面。</p>
<p>晚上散步的时候，坐在步行街的儿童乐园里面，喝着咖啡，为明年许了一个愿，我许愿说把这个游戏弄出来，想来过于乐观了。慢慢弄，让过程变得好玩一点。就像对待一个高度自由的美式RPG一样。</p>
<p>其实能有这样的进展其实已经算是不错了，基本上找到了自己的目标和需求。</p>
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/10757；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/10757/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>开发计划</title>
		<link>http://blog.chenyi.me/blog/10746</link>
		<comments>http://blog.chenyi.me/blog/10746#comments</comments>
		<pubDate>Mon, 26 Oct 2009 08:02:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[电玩]]></category>

		<guid isPermaLink="false">http://blog.chenyi1976.com/blog/10746</guid>
		<description><![CDATA[关于开发游戏的计划，恐怕又要虎头蛇尾了。

也许我应该考虑花几个月的时间，把所有的引擎全部过一遍。寻找到最合适的游戏引擎。不过随便定一个时间段，既没有科学性，也没有约束力，更不会产生动力。

我应该想一想，怎么弄。连需求和目标都是一团糟。

其实就当作一场华丽的冒险好了。其实我也没有能力做得多好多好。也没人期待能做到什么地步。唯一有所期待的人只有一个，就是我自己。而对于我来说，我也许欠缺很多东西，但是从来不缺少耐心。

又尝试了一个新的引擎：EasyWay，觉得它有点像PaLib的意思（都是封装中Sprite之类的样子）；配置它花了一点时间，主要是因为库依赖的问题（唔，要是用Maven就不会怎么折腾了）。

<span class="readmore"><a href="http://blog.chenyi.me/blog/10746" title="开发计划">阅读全文——共1299字</a></span>]]></description>
			<content:encoded><![CDATA[<p>关于开发游戏的计划，恐怕又要虎头蛇尾了。</p>
<p>也许我应该考虑花几个月的时间，把所有的引擎全部过一遍。寻找到最合适的游戏引擎。不过随便定一个时间段，既没有科学性，也没有约束力，更不会产生动力。</p>
<p>我应该想一想，怎么弄。连需求和目标都是一团糟。</p>
<p>其实就当作一场华丽的冒险好了。其实我也没有能力做得多好多好。也没人期待能做到什么地步。唯一有所期待的人只有一个，就是我自己。而对于我来说，我也许欠缺很多东西，但是从来不缺少耐心。</p>
<p>又尝试了一个新的引擎：EasyWay，觉得它有点像PaLib的意思（都是封装中Sprite之类的样子）；配置它花了一点时间，主要是因为库依赖的问题（唔，要是用Maven就不会怎么折腾了）。</p>
<p>与其设置一个限期，不如没过一阵子就递交一个调研报告。比如以两周到一个月为期。这个频率既能够让我有足够的时间来琢磨出点可以汇总的东西，又可以保证没有太大的压迫感。</p>
<p>搞了19寸的液晶回来，一直都觉得笔记本的14寸屏幕实在不方便。多了一个屏幕以后，以后会好很多。这个念头事实上也纠缠了我很久。需要一根VGA/S-VGA/DVI连接线。楼下小店有，5元，觉得有点贵。</p>
<p>事实上，就算是19寸的屏幕，对我而言，也不过刚刚够用而已。23寸的甚至更大才好。写代码的人没有人嫌自己的显示器大。而且这个显示器貌似还是宽屏的，宽屏更好。意味着我可以多留一点空间给侧边栏。</p>
<p>这个计划的第一步就是过一遍各种项目，包括各种游戏引擎，比较他们的优劣，适用场合；也包括各种小的游戏的实现，借此也找到灵感和目标，或者干脆站在巨人肩膀上。</p>
<p>这也是个好机会。以前有人跟我说，要看源码，要学习，看源码长功力；我都一个耳朵进一个耳朵出，归根结底，就是没动力。现在选择引擎了，女怕嫁错郎，男怕入错行；随便写个俄罗斯方块，乱涂乱画也结了；真正想做个白白净净的艺术品，唔，还得站在巨人肩膀上。</p>
<p>这一周就算了，我得先把波斯王子4和鬼泣4过关过掉再说。。。话说，这个波斯王子4真的是挺有趣的，简单，要完美又不简单，加上赏心悦目。唔。很不错。不过依然不到收藏的地步。。。真正能够让我收藏的东西，要么是可以联网的，要么是策略性极强的。。。反面教材就是Bioshock，虽然这游戏挺不错，但是没啥可重复性。。。估摸着波斯王子4和鬼泣4也是这种。。。</p>
<p>如果这样搞的话，计划看起来遥遥无期，但其实，只要坚持，结果迟早会来。</p>
<p>每两周或者每月汇总的结果会放到博客上，尽量避免把代码或者过于琐碎的东西放进去，也许做一个表格比较好。研究了哪些东西，有什么特长，哪些特性，喜欢哪些，不喜欢哪些。这样就够了。</p>
<p>这事情想来想去，只能一个人做，不可能找到合作的人。。。除非自己做出一点东西出来，然后找人一起移植到X360的C#上，这倒是有可能。不过过于遥远的东西，说得太多，就是吹牛了。</p>
<p>上周和ZY说，一起做个游戏吧；回答说，难道还有什么游戏需要自己写；我想了挺久，终于知道了这里面所隐含的观念的差异。。。你不能向一个从来没有没有过某种情结的人解释你的情结，因为你的这种举动本质上是非理性的，是的，我的目标其实不是创造，而是圆一个梦而已，这个梦想，是不能传递的，而是需要默契的。</p>
<p>所以，一个人上路吧。
<div style="margin-top: 15px; font-style: italic">原创的话痨如需转载请注明来源：http://blog.chenyi.me/blog/10746；转载的文章我会力所能及地注明来源如有疏漏请留言指正。</p>
</div>
<p>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chenyi.me/blog/10746/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

