10FCNES游戏开发教程(CC65版本)(十)(一起FC)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

终于考完期末了,以后就开始假期了,闲暇的时间也估计多了,可以写东西的时间估计也多了,当然只是估计而已,也可能不上课期间忙。管它呢,离搬迁还有一两天,先写完这这最后一章再说了。

本来之前就写了部分的,可惜电脑中毒,重弄系统,忘了备份,损失啊,那多少个日日夜夜积累下的代码,全部重写吧。在此也给看到这篇教程的朋友们一个提醒,小心防毒、小心备份。

昨天看到好友SHZkkqq说我太谦虚,其实感觉太谦虚很不恰当,因为知道自己懂的太少了,所以好多地方都不敢妄加评论,我怕误人子弟,希望大家在看到我的教程中的错误是可以给我提出,有错误才有进步嘛,错不可怕,就怕不知道自己错了,不是吗?

好吧,开始吧,说的这章要给大家一个完整的NES游戏创建,这游戏没有大家想象的那么刺激,好像只能够证明CC65还能写游戏,希望大家不要抛砖。

下面你看到的是一个创建游戏的整个过程,我将会从CC65的安装开始讲。

一下所讲到的所有工具包括代码和资源都可以在我的网盘/?trbbadboy下载到,当然有些东西你可以去官网或者工具编写者的空间下载最新版本。

首先安装CC65(官网/ FTP下载目录ftp://ftp.musoftware.de/pub/uz/cc65/),由于我们只是用来编译成NES的文件,所以安装选项中只选对NES的支持就够了。如图:

安装完CC65就可以编译C文件了。假设我们自己写了一个C代码文件,文件名为“helloworld.c”,代码为:

#include

void main()

{

cprintf("OK!");

while(1);

}

我们的编译命令可以这样写:

cl65 -t nes -o helloworld.nes helloworld.c

意思是编译helloworld.c文件,使用的编译模式为nes模式,最终生成的文件名为helloworld.nes。

用模拟器打开它就可以看到屏幕上显示“OK!”,更详细的可以看我前面的教程。

好吧,开始我们的游戏吧。

首先要大郅的构思一下我们的游戏的大致界面,我们想要的大致是可以移动一个主人公,他拥有推箱子、放炸弹的能力,他的任务是摧毁箱子获得通往下一关的钥匙,仅此而已。如果你还想更多一点的话,可以让他在某一关开始会遇到敌人,或者炸开箱子后遇到敌人,或者很有诗意的最后救出了公主等等。鉴于时间和能力,再说也要给大家修改的空间,我就不打算实现那么多功能了,其实也不知道CC65所支持的40k的NES允不允许我们再去弄那么多了,这也是一个问题。

要有主人公,当然要先让主人公有个人样(哦,当然主人公也可以是动物,当至少也要先有个样子),所以先画主人公和周围场景吧。

打开yychr,导入我之前提过的“标准ascii.chr”这个是维京猎人给我的,觉得里面的字体好看就定为自己的标准了,我不强求大家遵守,只是为了表述方便,我一直在以它为例。先把它另存为一下,以免之后的修改破坏了“标准ascii.chr”,我们另存为“mg.chr”吧(migong 的缩写,英文不好),记得把它存到待会我们要保存代码的文件夹下面。画面如下:

然后发挥自己的想象力画一下我们的主人公及其他相关的图块吧,顺便感谢一下风竹丽影,因为我的图片全是她抽空帮我画的。(主人公是打算使用8*8,这样易于实现,其他的地图也是由8*8的图块拼接成的)

最终的画面:

补充一下:

你可能会遇到导入chr文件后画面上也不显示任何东西,那可能是调色没弄对,你自己再配一下色就可以了。

Yychr的调色不会使用保存,希望知道的朋友可以给我提示,谢过。

更详细的使用见我前面的教程。

有了图块,我们需要还需要制作游戏开始的界面,也就是我们的logo,游戏时的框架(用来组织游戏在屏幕上的显示),以及游戏结束时的GAME OVER画面等等。于是我们需要用到另一个工具了,维京猎人的“FC专用地图编辑器”,目前的最新版本是v2.5,在此谢过猎人。先弄我们的logo吧,打开“FC专用地图编辑器”,在菜单——字模——导入字模中导入“mg.chr”,设置一下配色,拼成你想要的logo之后保存为“mglogo.nmr”如图:

用同样的方法创建出游戏框架“mgframe.nmr”,如图:

暂停时的画面“mgpause.nmr”,如图:游戏结束画面“mgover.nmr”,如图:

完成这些资源后,我们开始写代码吧,我写这个游戏的时候是一部分代码一部分资源的完成的,但是我我希望大家在写游戏的时候先整体构思后,准备好相关的资源在开始写代码,细心的朋友可能会发现我的字模文件很没有连贯性,就是因为想到一部分弄一部分的后果,希望大家吸取经验教训。

给游戏想一个拉风的名字吧,原本想写的是迷宫,后了又改了,改的迷宫不像迷宫,泡泡堂不像泡泡堂,随便想一个名字吧,叫“迷宫不迷”,也希望FC对于大家不是迷,希望大家精通FC,本人的小小愿望,呵呵。

代码部分我已经很详细的写了注释了。大部分都可以看懂了,又因为百度空间的文章长度限制,我不可能一一讲述了。我挑几个地方讲讲吧。不懂的欢迎E-Mail我。

1、头文件包含

你可能会看到如下的预处理命令:

#include "mylib.c" //包含我的库

#include "mglogo_dat.h" //包含logo名字表信息

#include "mglogo_col.h" //包含logo调色板信息

#include "mgframe_dat.h" //包含框架名字表信息

#include "mgframe_col.h" //包含框架调色板信息

#include "mgpause_dat.h" //包含暂停名字表信息

#include "mgsp_col.h" //包含精灵调色板

#include "mglogosp_col.h" //包含logo时精灵调色板

#include "mgover_dat.h" //包含game over名字表信息

#include "mgover_col.h" //包含game over调色板信息

相关文档
最新文档