导读: 网上下载的CSDN里面的代码^^^ 分享………… 我用TC调试成功了 因为头文件里有
网上下载的CSDN里面的代码^^^
分享…………
我用TC调试成功了
因为头文件里有<graphicsh> 所以不能在VC中运行
#include <stdioh>
#include <stdlibh>
#include <biosh> /这里须要读取系统运行时间来作为定时器/
#include <graphicsh> /很不幸,TC2的简单图形,让我放弃了用/
#include <conioh> /win32+openGL来讲解/
#define MAX_X 14 /可见最大X/
#define MAX_Y 21 /可见最大Y/
/我们定义了最大的可见X和Y,那么即还有不
可见的部分,事实上地图(大盒子)里的左右
两侧和底部各两行都被1填充,这样大大简化
出界的判断,事实上,在本例中没有这样的
代码,因为旁边有一圈1阻止小盒子越出大
盒子的按制范围
/
#define MAX_C 7 /最大种类,这个无须解释/
#define KEY_UP 'w' /定义上下左右按按键/
#define KEY_DOWN 's'
#define KEY_LEFT 'a'
#define KEY_RIGHT 'd'
#define KEY_ESC 27 /退出/
typedef int BOOL;
#define FALSE 0
#define TRUE 1 /这几个TC中没有自己定义一下吧:)/
/时钟结构/
typedef struct { /时钟结构/
BOOL enabled; /时钟是否开启/
unsigned int intervel; /定时间隔/
unsigned int lasttime; /这个属于内部使用变量/
} Timer;
/
现在进入了编程的初质阶段
在开始处我会写出所有的函数原形,以及它们的作用
main函数在程序的最后,你可以在这里看到整个游戏的组织架构
很好,它只有几十行,并且非常容易理解,当然,还是先看一下函数原形
及解释
/
/\
函数原形及说明
\/
/以下三个函数可以参照Timer结构体在函数声明后面/
int GetTickCount(); /返回电脑或操作系统运行逝去的时间/
/在win32环境下已包含在windowsh里边,返回的是4byte/
/在DOS(本代码)环境下,要自己编写,使用到BIOSh内容/
int setTimer(Timer t, unsigned int intv, BOOL en);
/设置时钟t,参数分别为时钟指针,时间间隔,是否活动/
/时间间隔,win32下为毫秒,DOS下为1/18秒(有点低)/
BOOL testTimer(Timer t); /测试时钟t是否到达定时时间/
/如下面这段代码:/
/
setTimer(&t, 1, 1); 设置1个单位的间隔
while(1) {
if(testTimer(&t)) printf("Active!\n");
}
将会定时(1个单位)在屏幕上打印Active!
一般来说testTimer必须放在循环中反复执行,激活时返回1
/
void render(void); /唯一的绘图函数/
/注意,此函数重画整个地图,根据地图中的点阵,以及根据
小盒在地图的中坐标在恰当位置画出小盒子/
/DOS的图形当然是很低的,但,全屏绘图在这里还是过得去
的,我用的是双缓冲,交换绘图,这样感觉好点/
void initMap(void); /初始化地图(大盒子)/
/之前提到过在这个两维数组中有一圈为1的东西来阻止
小盒子出界,这就是生成这一圈的函数/
void newGame(); /新建一个游戏/
/这个函数初始化一几个时钟和建造第一个下落的小盒子/
/当然建造完后要生成一个个的预览/
void rotateBox(int box1[5][5], int box2[5][5]);
/核心函数成员,把box1逆时针旋转90度,并保存到box2中/
void rebuidNext();
/核心函数成员,生成下一个方块/
int drop();
/核心函数成员,将下落的盒子向下移(实际上增加下落盒
子的Y值而已,当然要判断是否与地图点阵重叠/
/与地图重叠,无法完成下落操作,返回0/
void putBox();
/在这之上,下落的盒子与地图之前是独立的两个两维数/
/当下落失败后,小盒子要回到顶端再次重新执行下落,这/
/时原来的盒子内容当然就要变成地图上的内容了,putBox
就是将下落盒子的内容根据XY写到地图上/
void clear();
/这个函数在下落失败并putBox后执行,扫描整个地图/
/清除掉满行的点阵,具体细节在函数内讲/
int move(int dir);
/左右移动下落盒子,dir指出向左还是向右,这个与drop
是一样的/
int test(int mx, int my, int box[5][5]);
/这个比较重点,判断box在mx,my为坐标上,与地图上的
非空点阵是否有重叠很通用的一个函数/
int rotate();
/旋转下落的盒子,当然如果转了之后与地图有冲突,会
取消转动,返回0,但返回的值好像没什么用~/
int newfall();
/创建下落元素,把"下一个"预览的内容复制到下落盒子/
/并将下落的盒子移动到地图顶部,当然这个过程,如果顶
部有冲突,会返回0,这时说明已经满了gameOver/
/\
变量区
\/
/在上面的说明中,可能会有一些蒙,因为可能对所用到的实际变量没
有了解
/
int map[MAX_Y+4][MAX_X+4]; /地图\大盒子MAX_X,Y是可见面积/
/我已说过需要在外面布两圈"卫兵"/
int curbox[5][5]; /当前下落的盒子/
int curx, cury; /保存着当前活动盒子在地图上的位置/
int nextbox[5][5]; /保存着下一个形状的盒子/
/以上就是这么几个盒子和坐标了/
/这里列出了标准七种俄罗斯方块图形点阵,用到时它们会被复制到相/
/应的盒子:)/
int box[MAX_C][5][5] = { /MAX_C(7)种预定义的盒子/
{
{0,0,0,0,0},
{0,0,0,0,0},
{1,1,1,1,0},
{0,0,0,0,0},
{0,0,0,0,0}
},
{
{0,0,0,0,0},
{0,0,1,0,0},
{0,1,1,1,0},
{0,0,0,0,0},
{0,0,0,0,0}
},
{
{0,0,0,0,0},
{0,1,1,0,0},
{0,0,1,1,0},
{0,0,0,0,0},
{0,0,0,0,0}
},
{
{0,0,0,0,0},
{0,0,1,1,0},
{0,1,1,0,0},
{0,0,0,0,0},
{0,0,0,0,0}
},
{
{0,0,0,0,0},
{0,1,1,0,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,0,0,0}
},
{
{0,0,0,0,0},
{0,0,1,1,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,0,0,0}
},
{
{0,0,0,0,0},
{0,0,1,1,0},
{0,0,1,1,0},
{0,0,0,0,0},
{0,0,0,0,0}
}
};
/\
时钟
\/
/时钟部分也非常理解的,一个用到设置时钟,一个用来测试时钟激活态/
Timer tDown; /正常下落定时时钟intervel会比较大/
Timer tFast; /按KEY_DOWN时使用的快速下落/
int speed = 13; /控制下落时间间隔/
#define FAST_INTV 1 /快时钟的间隔/
/\
时钟
\/
/时钟部分也非常理解的,一个用到设置时钟,一个用来测试时钟激活态/
Timer tDown; /正常下落定时时钟intervel会比较大/
Timer tFast; /按KEY_DOWN时使用的快速下落/
#define FAST_INTV 1 /快时钟的间隔/
int GetTickCount() { /读取BIOS时钟/
int ret;
ret = peek(0x0,0x46e); /实际上读取了内存0:046e处的内容/
ret <<= 8; /这个地方是$%#$^$%&^/
ret += peek(0x0,0x46c); /太多新的东西了,找点书看一看吧/
return (ret);
}
int setTimer(Timer t, unsigned int intv, BOOL en) {
t -> enabled = en; /设置一个时钟罗/
t -> intervel = intv;
t -> lasttime = GetTickCount(); /lasttime记录的是上一个/
/tickcount返回的东西/
/这样当再一次测试时间时新的tickcount产生了
它来减去上一次的tickcount就得出了一个时间
间隔,这个就可以和intervel比较从而得出是否
激活了
/
return 0;
}
BOOL testTimer(Timer t) { /在上面6行的地方解释了:)/
unsigned int tmp, dt;
if (!(t -> enabled)) return FALSE;
tmp = GetTickCount();
dt = tmp - (t -> lasttime);
if(dt >= t -> intervel) {
t -> lasttime = tmp;
return TRUE;
}
return FALSE;
}
/\
渲染部分
\/
/提供render更新整个屏幕/
/关于这个函数,要说的东西还是比较多,为了追求漂亮和编译/
/时的灵活性,这个函数被写得颇为冗长/
/现在写一下本游戏图形的东西使用TC2的Graphics我也不
太乐意,毕竟它本身已过时,但鉴于实在简单实用,它用来教学
再合适不过,这也是教学总是用TC的原因,老师们不喜欢让学
生问一些让他们掌握起来也困难的东西/
/这里我使用了VGAMED模式,而不是 VGAHI,因为VGAMED有两个
页(可以想像成缓冲),这样可以用来做到不闪动画即:在后台
页绘制图形,完成后再显示出来
这里用到了两个函数:
setactivepage(1 | 0) 参数只能是1或0,选择绘图页,例如选
择了1后,以后所有的绘图动作将画到页1上
setvisualpage(1 | 0) 这个叫做选择可见页,即选择在屏幕上
显示页面1还是0
/
void render(void) {
int x, y;
static int cPage = 0; /当前页,换页用/
#define STARTX 50 /定义几个常量/
#define STARTY 0
#define LEN 18
setactivepage(cPage=(cPage == 01:0)); /选择页/
cleardevice(); /清屏/
setcolor(15);
rectangle( STARTX + LEN 2 - 2,
STARTY + LEN 3 - 2,
STARTX + LEN (MAX_X - 2) + 2,
STARTY + LEN (MAX_Y - 2) + 2);
/用白色画一个外框/
setfillstyle(SOLID_FILL, 5);
for(y = 3; y < MAX_Y - 2; y++) { /画地图 /
for(x = 2; x < MAX_X - 2; x++) {
if(map[y][x]) {
rectangle( x LEN + STARTX,
y LEN + STARTY,
x LEN + STARTX + LEN,
y LEN + STARTY + LEN);
bar( x LEN + STARTX + 1,
y LEN + STARTY + 1,
x LEN + STARTX + LEN - 2,
y LEN + STARTY + LEN - 2);
}
}
}
/绘图操作就不要作太复杂的介绍了,这只写作用/
/以上段,根据地图上的点阵情况将地图反映到屏幕上/
for(y = 0; y < 5; y++) { /画下落物/
for(x = 0; x < 5; x++) {
if(curbox[y][x]) {
if(y + cury > 2) {
rectangle( (x + curx) LEN + STARTX,
(y + cury) LEN + STARTY,
(x + curx) LEN + STARTX + LEN,
(y + cury) LEN + STARTY + LEN);
bar( (x + curx) LEN + STARTX + 1,
(y + cury) LEN + STARTY + 1,
(x + curx) LEN + STARTX + LEN - 2,
(y + cury) LEN + STARTY + LEN - 2);
}
}
}
}
/以上将下落的盒子按昭它在地图上的坐标,画到对应的区域里/
for(y = 0; y < 5; y++) { /画下一个/
for(x = 0; x < 5; x++) {
if(nextbox[y][x]) {
rectangle( x LEN + 320,
y LEN + 10,
x LEN + 338,
y LEN + 28);
bar( x LEN + 321,
y LEN + 11,
x LEN + 336,
y LEN + 26);
}
}
}
/这个画出下一个盒子的预览/
setvisualpage(cPage); /确认在cPage页里画好了/
/将它显示出来/
}
/\
初始化部分
\/
/提供newGame()初始化新游戏/
void initMap(void) { /初始化地图/
int x, y; /我们须要一圈卫兵/
for(y = 0; y < MAX_Y; y++) {
for(x = 0; x < MAX_X; x++) {
if(x < 2 || x > MAX_X - 3 || y > MAX_Y - 3)
map[y][x] = 1;
else map[y][x] = 0;
}
} /这里初始化出这个形状/
} /当然是无盖的/
void newGame() { /新建游戏/
int x, y;
initMap(); /初始化地图/
srand(GetTickCount()); /初始化随机发生器/
rebuidNext(); /建立下一个/
setTimer(&tDown, speed, 1); /启动时钟(快慢两个)/
setTimer(&tFast, FAST_INTV, 1);
newfall(); /对下落的盒子操作一下/
/这样第一个下落的方块
就在地图顶部准备好了/
}
/\
核心函数
\/
void rotateBox(int box1[5][5], int box2[5][5]) {
/旋转box1输出到box2/
int x, y;
for(x = 0; x < 5; x++) /这个函数可以须要实际/
for(y = 4; y >= 0; y--) /编写一下才能印像深刻/
box2[y][x] = box1[x][4 - y];
}
void rebuidNext() { /新建下一个形状并放到nextbox中/
int i, x, y;
i = random(MAX_C); /从几种方块里面选一种/
for(y = 0; y < 5; y++) /并复制过来/
for(x = 0; x < 5; x++)
nextbox[y][x] = box[i][y][x]; /复制/
}
int drop() { /下落,返回成功与否/
int newy; /盒子要下落的新位置/
newy = cury + 1; /为当前Y位置+1/
if(test(curx, newy, curbox)) {
cury = newy; /测试下落盒在这个位置/
return 1; /上是否有冲突,没有的话/
} /直接设置cury/
return 0;
}
void putBox() { /将curbox填充到地图上/
int x, y;
for(y = 0; y < 5; y++) /这个也简单,主要是要根/
for(x = 0; x < 5; x++) /据curx,cury指出位置 /
if(curbox[y][x])
map[y + cury][x + curx] = curbox[y][x];
}
void clear() { /清除掉满行/
/这个函数实际上效率也很低的,为了简便
它从头到尾作了测试/
/具体的算法为:
从第0行开始到最后一行,测试地图点阵是否为满,如果是的话
从当前行算起,之上的地图向下掉一行/
int x, y;
int dx, dy;
int fullflag;
for(y = 0; y < MAX_Y - 2; y++) { /最后两行保留行/
fullflag = 1; /假设为满/
for(x = 2; x < MAX_X - 2; x++) { /保留列~/
if(!map[y][x]) {
fullflag = 0;
break;
}
}
if(fullflag) { /向下移动一行/
for(dy = y; dy > 0; dy--)
for(dx = 2; dx < MAX_X - 2; dx++)
map[dy][dx] = map[dy - 1][dx];
for(dx = 2; dx < MAX_X - 2; dx++)
map[0][dx] = 0;
/并清除掉第一行/
}
}
}
int move(int dir) { /返回成功与否/
int newx;
if(dir) newx = curx + 1;
/与drop一样,准备移动后的坐标/
else newx = curx - 1;
if(test(newx, cury, curbox)) { /测试是否冲突/
curx = newx; /可以的话切换curx/
return 1;
}
return 0;
}
int test(int mx, int my, int box[5][5]) {
/测试box在map里mx,my位置上是否能着陆/
/这个是最关键的一个函数,它判断是否产生非空冲突/
/但算法还是很简单的/
int x, y;
for(y = 0; y < 5; y++)
for(x = 0; x < 5; x++)
if(map[y + my][x + mx] && box[y][x])
return 0;
return 1;
}
int rotate() {
int x, y;
int newbox[5][5]; /我们必须将当前盒子转动到新的盒子/
/再对这个新的盒子的冲突作测试/
rotateBox(curbox, newbox); /转动到新的盒子/
if(test(curx, cury, newbox)) {
/并且新的盒子能放到地图上而不冲突/
for(y = 0; y < 5; y++)
for(x = 0; x < 5; x++)
curbox[y][x] = newbox[y][x]; /复制进来/
return 1;
}
else return 0;
}
int newfall() { /创建下落元素失败返回0/
int x, y;
curx = MAX_X / 2 - 2; /重新指定小盒位置/
cury = 0;
for(y = 0; y < 5; y++)
for(x = 0; x < 5; x++)
curbox[y][x] = nextbox[y][x];/将nextBox复制过来/
rebuidNext(); /重建nextBox/
return test(curx, cury, curbox);
}
/\
主函数 -- 整个游戏架构
\/
int main() {
char key; /记录当前按键/
int i;
int gd = VGA, gm = VGAMED; /初始化的图形模式/
Timer ptDown; /下落所指向的时钟(有快慢)/
Timer trender; /为了避免渲染给程序造成过大的负担/
/用一个时钟来控制渲染速度/
/把它设置interval = 1,/
/这样就是18 FPS了,当然无法达到标/
/准的60 FPS毕竟这是DOS/
setTimer(&trender, 1, 1);
initgraph(&gd, &gm, ""); /初始化图形/
newGame(); /新游戏/
while(1) { /主游戏循环/
if(kbhit()) { /如果键盘有按下/
key = getch(); /读取一个按键值到key/
}
else key = 0;
switch(key) { /对读到的key进行判断/
case KEY_UP:
rotate(); /上,旋转下落盒子/
break;
case KEY_DOWN:
ptDown = &tFast; /使用tFast时钟 /
break;
case KEY_LEFT:
move(0); /左移/
break;
case KEY_RIGHT:
move(1); /右移/
break;
case KEY_ESC:
closegraph(); /结束游戏/
exit(0);
default:
ptDown = &tDown; /使用原来速度 /
}
if(testTimer(ptDown)) { /在上面已设置了下落要
使用的时钟在ptDown里/
if(!drop()) { /下落,失败返回0/
putBox(); /写到地图里/
clear(); /清除满行/
if(!newfall()) { /新建下落,失败则游戏结束/
closegraph();
exit(0);
}
}
}
if(testTimer(&trender)) /最后渲染/
render();
}
}
中文改版攻略再开,这次小夜带来的是8月26日发布的漆黑的魅影V45。好了不废话游戏开始吧
奥德博士改成小田卷博士了,选性别取名字
调表,下楼
来到隔壁邻居家,研究怪兽球,对手小遥出现
博士总是被追啊……上去选精灵吧:
暖暖猪,技能:撞击,叫声
藤叶蛇,技能:撞击,瞪眼
球海獭,技能:撞击,摇尾
对方是Lv2的蛇纹熊(话说汉化工作不错啊),轻松搞定回到研究所,得到精灵,对话后去寻找小遥
右边多了个梦之实验室,暂时进不去
向上走在幻影之森找到小遥,对方竟然说不认识,本体来了才知道这个是假的
对话后佐罗亚出现,打败后加入队伍(一开始只会摇尾巴好桑心啊)
对手说要比试一下,来就来么,对方是Lv5的属性相反的精灵,小夜为小火鸡(哈不是猪)
回到研究所后得到图鉴和精灵球
妈妈给了双跑步鞋,可以出发了
老家到橙华市草丛可遇到小火龙、小火鸡、暖暖猪、火球鼠的三主角
古辰镇向左走来到橙华市,去道观看爸爸,小光(不是道夫了)进来索要精灵,再次进入捕捉教学
接着向左来到橙华森林,遇见研究员大叔,水舰队的小兵又来捣乱,揍他,对方是Lv9土狼犬
胜利后得到超级球,继续向上走
花店拿到吼吼鲸喷壶
来到卡那兹市,拿了居合斩后去挑战道馆吧
岩石系道馆人员精灵:
Lv10小拳石
Lv8小拳石Lv8小拳石
Lv8小拳石Lv8小拳石
馆主精灵:Lv15大岩蛇Lv15钢磁鼻Lv18由基拉
出门后看见水舰队的小兵跑走,追上去得知森林的大叔的包裹被抢了
继续向右走来到一个洞口前得知老爷爷的精灵被抢了,进洞发现水舰队的小兵,战斗,精灵为Lv11土狼犬
胜利后得到行李箱,哈奇老人进来道谢(PS:附近能捉到铁哑铃)
出洞找到大叔,得到超级球并被引荐给社长
从社长那里得到给大吾的信和口袋领航员(即主菜单)
出门后有研究员追加对战寻呼的功能(话说汉化的比原版好多了)
向下走在城市出口碰见小遥,对话后进入战斗
小遥精灵:Lv13莲叶童子Lv15火稚鸡
回到104号道路,找到哈奇老人坐船去武斗市
这里的大叔那得到低级钓竿
挑战道馆吧
格斗系道馆人员精灵:
Lv13幕下力士
Lv13幕下力士
Lv13腕力
Lv13猴怪
Lv13幕下力士
Lv13腕力
馆主精灵:Lv18腕力Lv18里奥鲁Lv21幕下力士
得到徽章后来到左上的洞穴,入口处的山男处拿到闪光
在洞的深处找到大吾,送出信后得到里奥鲁的精灵蛋
坐船回到卡那兹市,在得文公司社长处拿到学习装置
坐船来到凯那市,在左上的房子里打败三个训练家可以得到6个提神苏打水
在造船厂跟一个大叔对话得知要交给馆长
出来后在博物馆二楼找到馆长,对话后水舰队再次出现,进入战斗
水舰队小兵精灵:
Lv15利牙鱼
Lv14超音蝠Lv14利牙鱼
胜利后水舰队老大露了个面就走了,任务完成
接着向上走遇见小遥,对话后战斗
小遥精灵:Lv18长翅鸥Lv18莲帽小童Lv20力壮鸡
胜利后得到道具探测仪,接着向上来到紫堇市
在右边拿到秘传笈碎岩
在这里拿到自行车
在道馆门前看见小光,对话后战斗,对方是Lv16拉鲁拉丝
胜利后道馆可以进去了挑战吧
电系道馆人员精灵
Lv17猴怪Lv17里奥鲁
Lv17电斑马Lv17雷电球
Lv17蛇纹熊Lv17溶食兽
Lv17甜甜萤Lv17电萤虫
Lv17雷电球Lv17小磁怪
馆主精灵:Lv21雷电球Lv21皮卡丘Lv23自爆磁怪Lv24雷精灵
向右来到绿荫镇,这里能查看亲密度
上方的洞口进去打碎岩石,可以得到秘传笈怪力
返回紫堇市向上走,沙漠依然进不去。穿过热焰小径,这里可以恢复体力
原来的火山灰落下的地方变成了冰结晶,这里可以用冰结晶做玻璃
来到冬雪镇,这里可以用心灵鳞片学技能
向左来到流星瀑布,听过对话后坐缆车上山,烟突山上各种小兵
火岩队小兵精灵:
Lv20超音蝠
Lv20呆火驼
Lv18呆火驼Lv22呆火驼Lv20土狼犬Lv22超音蝠
火岩队老大精灵:Lv24大狼犬Lv24超音蝠Lv25喷火驼
胜利后从机器上取下一块陨石,交给冬雪镇的研究员可以得到技能27
坐缆车来到釜炎镇,温泉边的老奶奶给了一个小果然的蛋
挑战道馆吧
火系道馆人员精灵:
Lv23熔岩虫
Lv23呆火驼
Lv23变隐龙
Lv23呆火驼
Lv23呆火驼
Lv23熔岩虫
Lv23猴怪
Lv22熔岩虫Lv22熔岩虫
馆主精灵:Lv24戴鲁比Lv24鸭嘴炎龙Lv26呆火驼Lv31煤炭龟
出门遇见小遥,得到go-go护眼罩,可以进沙漠了
带上音速自行车去幻影塔找化石,只能拿走一个
这时怪力可用,可以收第一只神兽了(等级不高者慎入)
来到热焰小径这里推开石头向上进洞
这里是Lv50炎帝
PS:出了炎帝洞后向下捡火焰石的地方附近可捉到火炬虫(Lv50进化成炎翅蛾)
从绿荫镇隧道来到卡那兹市,大叔在另一边等着,给了个重复球
顺便去一趟得文公司复活化石,木根化石为触手百合,指爪化石为化石蝎
回到橘华市,挑战爸爸的道馆
普通系道馆人员精灵:
Lv26大王燕
Lv26晃晃斑
Lv26猫鼬斩
Lv26优雅猫
Lv26胖可丁
Lv26过动猿
Lv26懒人翁
馆主精灵:Lv29卡比兽Lv29吉利蛋Lv33请假王Lv31袋龙
胜利后被小光爸爸叫去,给了秘传笈冲浪
回家一趟,在妈妈那里得到守护金币
橙华市左边橙华森林那里有个房子可以冲浪过去了,名为森之洋馆,里面各种幽灵系PM
深处看见小光,但是情况好像不对劲,对话后进入战斗
小光精灵:Lv32七夕青鸟Lv33沙奈朵
胜利后得知小光被什么控制了
这时回到一层,左边多了个入口
进入走到尽头,从一个玻璃柜里拿到月食之羽(二周目抓噩梦神用)
马上会跳出一个Lv35的噬魂吊灯,抓住或打死后就可以离开了
冲浪来到武斗镇上方的石之洞窟,这里被石头堵着,现在可以过去了
尽头站着一个人,这里回答否,得到破坏因子(抓超梦用)
凯那市向左冲浪来到废弃船,屋里拿到仓库钥匙,仓库里是秘籍冷冻光线
这里需要潜水,目前进不去
在紫堇市看见道馆的老爷爷,对话后被拜托去新紫堇关掉发电机,并得到钥匙
城市下方向右冲浪来到新紫堇,使用钥匙门打开了
深处有个红色按钮,踩上去即可
新紫堇进门右拐向上走,来到一个地方(等级不高者慎入)
直走到尽头可捉Lv50雷公
回去找老爷爷对话可以得到十万伏特的秘籍
紫堇市向右冲浪,钓鱼大叔这里拿到中级钓竿
向上走来到天气研究所,右边的桥被堵住了,进去后看见水舰队的人,开打
水舰队小兵精灵:
Lv28利牙鱼
Lv27超音蝠Lv27土狼犬
Lv27土狼犬Lv27利牙鱼
Lv27超音蝠Lv27土狼犬
Lv26土狼犬Lv26超音蝠Lv26利牙鲨
水舰队头目精灵:Lv28利牙鱼Lv28大狼犬
胜利后得到精灵漂浮泡泡(之后的草丛里有的抓)
离开天气研究所向右走,过了桥就碰到小遥前来比试
小遥精灵:Lv29大嘴鸥Lv29莲帽小童Lv31力壮鸡
胜利后得到秘传笈飞天
来到茵郁市,本想去挑战道馆,可是被什么挡着
接着向前走遇见大吾,对话后进入战斗,对方是野生Lv30变隐龙
胜利后得到得文观测镜,可以看见看不见的精灵
回去时先在这里绕下路,冲浪进洞(等级不高者慎入)
之前拿到了破坏因子,尽头可捉到Lv70超梦
捕捉后在洞口看见之前火箭队的研究员,并得知反转世界的入口
挑战道馆吧,飞行系道馆人员精灵:
Lv30盔甲鸟
Lv27嘟嘟Lv27盔甲鸟Lv27热带龙
Lv27青绵鸟Lv27青绵鸟Lv27青绵鸟
Lv29大王燕Lv29天然鸟
Lv29嘟嘟Lv29大嘴鸥
Lv30热带龙
馆主精灵:Lv31嘟嘟利Lv31毽子棉Lv32暴鲤龙Lv33盔甲鸟Lv35七夕青鸟
终于可以飞了,接着向下个城市走,半路看见一堆水舰队的小兵,先不管他们
继续向前,这里砍掉小树,可捉到闪光皮丘
来到水静市,上方的百货大楼前有小遥守着,上前对话进入战斗
小遥精灵:Lv31热带龙Lv32大嘴鸥Lv32乐天河童Lv34力壮鸡
右边是忘光光老爷爷
在选美赛场这里拿到能量方块盒(怪兽盒),砂狐乐园可以进去了
水手这里拿到梦幻船票
带上音速自行车,冲上这个斜坡,在深处的水池中间可捉到闪光暴鲤龙
从送神火山码头冲浪来到送神火山
上到最顶层,在这里可以进入反转世界(需要超梦剧情,野怪等级60+,慎入)
穿过很长的走廊可到达轮回镇,不过镇上的人暂时看不见
在镇子的左下有个入口,到达一个风雨交加的地方
上前与之前见到的火箭队研究员对话,之后进入战斗
精灵阵容为:Lv66 3D龙ZLv66胡地Lv66巨钳螳螂Lv68艾路蕾朵
胜利后就可以上前捕捉Lv70盖诺塞克特
接着向前走,尽头可捉到Lv70冥王龙
收服后获得看到灵魂的能力,回去就可以看见镇上的人了
回到轮回镇,这里的男人给了冥界之花
原路返回后可以先飞去绿荫镇,把冥界之花交给这个女人,得到感恩之花
来到右边的洞穴里,跟赛伊米对话,即可收服之,Lv30
回到送神火山,进门向左来到一个有雾的地方,水舰队又出现了
水舰队小兵精灵:
Lv32利牙鱼
Lv32超音蝠
Lv30土狼犬Lv30利牙鱼
Lv30吼吼鲸Lv30超音蝠
上前对话得知水舰队拿到了红色玉石,之后老奶奶给了火岩队之证
坐缆车来到烟突山向下走,半路会打开一个洞口
是火岩队藏身所,自然有不少小兵,精灵如下:
Lv29土狼犬
Lv29呆火驼
Lv29大狼犬
Lv28青铜镜Lv28呆火驼
Lv28青铜镜Lv28超音蝠
Lv29呆火驼
Lv29大狼犬
Lv29超音蝠
Lv29土狼犬
Lv29超音蝠
Lv29超音蝠
Lv29大狼犬
Lv29青铜镜
Lv29青铜镜
Lv29呆火驼
Lv29超音蝠
Lv28大狼犬Lv29呆火驼Lv30超音蝠Lv33喷火驼
深处看见火岩队的老大,他试图叫醒古拉顿但是失败,之后进入战斗
火岩队老大精灵:Lv37大狼犬Lv38叉字蝠Lv39喷火驼
胜利后火岩松去追古拉顿了,没我们什么事了,出去吧
来到凯那市,码头那里一群人,上去与馆长对话后水舰队出现抢走了潜水艇
飞到水静市抄家去,这里可以进去了
水舰队小兵精灵:
Lv32土狼犬
Lv32利牙鱼
Lv31超音蝠Lv31利牙鱼
Lv31土狼犬Lv31超音蝠
Lv32利牙鱼
Lv32超音蝠
Lv32超音蝠
Lv32利牙鱼
两只顽皮弹,一个金珠,一个大师球
水舰队头目精灵:Lv34大狼犬Lv34大嘴蝠
胜利后潜水艇跑掉了,没办法以后再收拾他
出门的吼吼鲸群不见了,向右冲浪来到绿岭市
这里可以用碎片换进化石
这里拿到高级钓竿
先去挑战道馆吧
超能系道馆人员精灵:
Lv36艾路蕾朵
Lv36勇吉拉
Lv36麒麟奇
Lv36勇吉拉
Lv36果然翁
Lv36天然雀
Lv36麒麟奇
Lv36天然鸟
Lv36拉鲁拉丝
Lv36跳跳猪
Lv36艾路蕾朵
Lv36艾路蕾朵
馆主精灵:Lv43天然鸟Lv43青铜钟Lv44太阳岩Lv44月石
得到徽章后在右边看见火岩队的人,来到宇宙中心,开打
火岩队小兵精灵:
Lv31超音蝠Lv31土狼犬
Lv32呆火驼
Lv32青铜镜
Lv26大狼犬Lv28大狼犬Lv30呆火驼
Lv32超音蝠
Lv32大狼犬
Lv32青铜镜
来到二楼,与大吾对话后选择三只PM进入双人战斗
大吾精灵:Lv42金属怪Lv43盔甲鸟Lv44恐惧斧龙
火岩队头目精灵:Lv36喷火驼Lv38大狼犬Lv40大嘴蝠
火岩队老大精灵:Lv42大狼犬Lv44喷火驼Lv43叉字蝠
胜利后火岩队放弃了作乱,大吾表示有东西要给
对着这块石头许愿,来到了一个很神奇的世界
尽头可以捉到Lv30基拉祈
来到城市左上的大吾家,得到秘传笈潜水
现在可以去废弃船那里看看,这里潜水下去
在这有个口,进去后可以捕捉黑暗路奇亚,Lv70
从前面的口浮上去,依次找到钥匙,最后在二号房找到探知机
来到凯那市的码头,把探知机交给馆长可得到深海之牙或深海之鳞
潜水找到这个洞口,进去后看见一个潜水艇,上岸横扫水舰队吧
水舰队小兵精灵:
Lv36土狼犬
Lv36利牙鱼
Lv37巨牙鲨Lv37大狼犬
Lv35大狼犬Lv35大嘴蝠
依然是试图唤醒海皇牙但是失败,还要打一场
水舰队老大精灵:Lv41大狼犬Lv41叉字蝠Lv43巨牙鲨
不过这次问题要大得多,世界面临毁灭的危险了
来到琉璃岛,果然两只神兽在打架
从左边过去,大吾会让你去找米可利
进洞找到人之后,被问到裂空座在哪里,自然是天空之柱了
131号路进去这个口到达天柱的洞口
在出口看见米可利,他把门打开后就走了,进天柱吧
在最顶层看见裂空座后它飞走了,回到琉璃岛两神兽被劝停
与两位首领对话后在米可利那里拿到秘传笈攀瀑
挑战道馆吧
水系道馆人员精灵:
Lv40角金鱼
Lv40翻车鱼
Lv39翻车鱼Lv39翻车鱼
Lv39笨笨鱼Lv39笨笨鱼
Lv39利牙鱼Lv39巨牙鲨
Lv39角金鱼Lv39吼吼鲸
Lv35珍珠贝Lv37大钳蟹Lv39莲帽小童
Lv35露利利Lv37玛丽露Lv39玛丽露丽
Lv40玛丽露丽
Lv40金鱼王
馆主精灵:Lv45乘龙Lv45暴鲤龙Lv47美纳斯Lv47乐天河童Lv50刺龙王
攀瀑可用,来收神兽吧~
先来到流星瀑布,在最深处可捉到迷你龙、宝贝龙和四只需要用化石复活的精灵
后面的洞进去后可捉到Lv50闪电鸟
114号道路这里攀瀑,上面有个洞
进去可抓Lv50急冻鸟
天柱骑自行车冲到顶层,可以捕捉Lv70裂空座
暮水市向左冲浪(带上会挖洞的精灵和古空棘鱼、吼鲸王),来到这里潜水下去,阅读石板上的不名符号后上去
阅读最后的石板后使用挖洞技能,打开一个洞口
进洞后阅读最后的石板,再以吼鲸王为头古空棘鱼为尾再读一次,会出现某处门打开的提示
中间的洞里是圣柱王,但是需要先捕捉三圣柱
来到沙漠这里,进洞阅读石板后左两步下两步碎岩即可开洞
进洞可捉到Lv40雷吉洛克
105号道路冲浪这个路口上去找到另一个洞口
阅读石板后顺时针贴墙走一圈洞口出现
进洞可捕捉Lv40雷吉艾斯
120号道路沿这里的台阶上去,找到最后一个洞
在中间使用闪光即可打开洞口,Lv40雷吉斯奇鲁
回到134号道路开启三神柱剧情那里,别忘了带上三神柱
从中间的洞口下去,可以捕捉Lv70雷吉奇卡斯
去彩幽市进冠军之路吧,这里瀑布下面有个洞可以直接进去
捉到Lv50水君
进冠军之路,小光还是会来要求对战
小光精灵:Lv49七夕青鸟Lv49巨龙花Lv49火暴兽Lv49大力鳄Lv50沙奈朵
PS:冠军之路可以捉到化石翼龙
二层这里推开石头进上面的洞口
可以捕捉Lv50火焰鸟
好了,先出去一趟飞去绿荫镇,来到左边的卡绿隧道
攀两个瀑布上去,左边是Lv70凤王
右边是Lv70洛奇亚
挑战四天王去
恶系天王:Lv67狡猾天狗Lv68梦歌奈亚Lv69黑鲁加Lv70月精灵Lv71班吉拉
幽灵系天王:Lv69梦魇Lv70耿鬼Lv70鬼盆栽Lv71夜黑魔人Lv72耿鬼
冰系天王:Lv70河马王Lv70迷唇姐Lv71冰鬼护Lv71猛犸猪Lv72乘龙
龙系天王:Lv71暗黑翼龙Lv71七夕青鸟Lv72快龙Lv72化石翼龙Lv73血翼飞龙
冠军米可利精灵:Lv73乐天河童Lv73沼王Lv73暴鲤龙Lv74刺龙王Lv74电灯怪Lv75美纳斯
胜利后观看结束动画,一周目完结(可以选择跳过的哟
二周目在家中开始
下楼后爸爸给了张船票,同时电视上播放了水都的消息,同样建议选不喜欢的颜色
出门后博士前来升级图鉴
与小遥对话可以无限对战(我能说这有个BUG么……小遥你把我第一个徽章还回来!!!)
小遥精灵:Lv74电龙Lv75雪妖女Lv76火焰鸡Lv76蜥蜴王Lv76巨沼怪Lv78沙漠蜻蜓
古辰镇的梦之实验室可以进去了,不过剧情还不能激活
来到橙华森林,这里冲浪进去
直走看见火箭队老大,进入战斗
火箭队老大精灵:Lv78袋龙Lv78天蝎王Lv78重甲暴龙Lv78班吉拉Lv78尼多王Lv80烈咬陆鲨
胜利后阪木跑掉了,上前捉Lv30雪拉比
在112号道路坐缆车去烟突山,出口上方多了个洞
上前与火岩队老大对话进入战斗
火岩队老大精灵:Lv78九尾Lv78青铜钟Lv78椰蛋树Lv78火焰鸡Lv78狡猾天狗Lv80喷火驼
胜利后可捕捉Lv30维库蒂尼
在114号道路化石迷家里拿到另一块化石,同样是去得文公司复活
去119号道路天气研究所与研究员对话得知某处天气异常,小夜为这里
多了个潜水点,潜水下去可捕捉Lv70海皇牙
再次回到天气研究所可得知另一处异常天气发生处,小夜为这里
这里多了个山洞,进去可捕捉Lv70古拉顿
绿岭市大吾家可以得到Lv5铁哑铃
琉璃岛出口处潜水下去,前方多了个洞口
在石板前浮上去,来到一个神殿,直走看见水舰队老大,战斗
水舰队老大精灵:Lv78牛蛙君Lv78快泳蛙Lv78巨牙鲨Lv78刺龙王Lv78铁盘坚果Lv80帝牙海狮
胜利后可以捉到Lv30玛娜菲
凯那市码头处坐船,上传后碰见亚希达,开启对战开拓区
在第二个房间里床上休息就可以到达水静市
再与那个姐姐对话会突然换成一个怪蜀黍……可以去南方小岛(船票之前在水静市拿到)
调查中间的不明物体出现水都,Lv50拉帝欧斯或Lv50拉迪奥斯(选的那只在全国随机遇)
从超梦身上取下古代海图,再去坐船,来到遥远小岛
在草丛里围追堵截,可以捕捉Lv30梦幻
水静市这所房子里睡觉,来到一个神奇的地方(需要月食之羽)
可捉到Lv50噩梦神
之后开启赤日剧情,进入战斗(这里有个BUG,貌似输了就会卡在这)
赤日精灵:Lv78玛狃拉Lv78绅士鸦Lv78暴鲤龙Lv78黑鲁加Lv78叉字蝠Lv80血翼飞龙
粉碎赤日的阴谋后离开这个世界
绿岭市向上来到浅滩洞穴,在洞的深处找到大吾(此处有个BUG,一定要先抓迪亚鲁加,若先捉帕鲁奇亚则迪亚鲁加就会消失)
对话后上前捕捉Lv70迪亚鲁加
流星瀑布通往最深处水道最下方进洞,瀑布底下多了个洞口
进去与米可利对话就可以捕捉Lv70帕鲁奇亚
顺带一提,这个洞口进去可与大吾对战
大吾精灵:Lv83盔甲鸟Lv84太古盔甲Lv84摇篮百合Lv84班吉拉Lv84青铜钟Lv85巨金怪
冠军之路出口处可以与小光对战
小光精灵:Lv54七夕青鸟Lv54巨龙花Lv54火暴兽Lv54大力鳄Lv55沙奈朵
来到琉璃岛,门口的爷爷直接无视掉,来到最深处下梯子
直走看见创世神,记得存了大师球,不然就这样
捕捉吧,Lv85创世神
水静市旅馆二楼得到三日月之羽
古辰镇这所房子里睡觉,来到新月岛
可以捕捉Lv50美梦神
来到右边的梦之实验室,与研究员对话开启梦世界剧情
通过这个床可以进入梦世界
镜之湖向下冲浪,进这个洞到达红莲之窟
这里可以过去,走旁边的小路,最深处的洞口
可以捉到Lv50炎钢巨兽
穿过红莲之窟到达绝望荒漠,右上是幻龙之塔(野怪等级80+,太恐怖了)
左边可捉到Lv70烈希拉姆
右边是Lv70捷克罗姆
中间可以过去了,貌似是个父子,主角自告奋勇上前挑战
盖奇斯精灵:Lv78夜黑魔人Lv78柯波郎Lv78 3D龙ZLv78鸭嘴炎龙Lv78海月水母Lv80暗黑翼龙
胜利后可进洞捕捉Lv70丘雷姆
梦之镇向上走来带梦之城,这里卖进化石
向左来到魅影之森,这里一直向左,跟“小遥”对话可捕捉闪光佐罗亚克,Lv35
一直向右走,过海穿洞,在这里登瀑,可以捉到Lv30凯尔迪奥
梦世界联盟暂时不能挑战,梦之镇睡觉可以回到现实世界
115号道路上进这个洞,可以挑战小智
小智精灵: Lv81乘龙Lv83卡比兽Lv84水箭龟Lv84妙蛙花Lv84喷火龙Lv88皮卡丘
119号路向下冲浪来到这个草堆,可以挑战希罗娜
希罗娜精灵:Lv83鬼盆栽Lv83假面蔷薇Lv83鲁卡里奥Lv84波克基斯Lv84美纳斯Lv86烈咬陆鲨
120号道路冲浪进这个洞口,可以挑战渡
渡精灵:Lv82暴鲤龙Lv82化石翼龙Lv84刺龙王Lv84血翼飞龙Lv84恐惧斧龙Lv86快龙
123号道路这里有个藤,进去可以挑战N
N精灵:Lv83雪妖女Lv83自爆磁怪Lv84钢钻鼹鼠Lv84噬魂吊灯Lv85佐罗亚克Lv86暗黑翼龙
回到梦世界,与门口的人对话他会让开,可以挑战了
第一人为希罗娜,阵容是:Lv100梦幻Lv100凯尔迪奥Lv100维库蒂尼Lv100拉帝欧斯Lv100赛伊米Lv100达克莱伊
第二人是大吾,阵容:Lv100班吉拉Lv100雷吉洛克Lv100巨金怪Lv100基拉祈Lv100迪亚鲁加Lv100烈咬陆鲨
第三人是渡,阵容为:Lv100古拉顿Lv100凤王Lv100克雷塞莉娅Lv100烈希拉姆Lv100雪拉比Lv100炎钢巨兽
第四人是米可利,阵容为:Lv100海皇牙Lv100捷克罗姆Lv100玛娜菲Lv100帕鲁奇亚Lv100闪电鸟Lv100洛奇亚
最后是联盟冠军,呃…小智,阵容是:Lv100超梦Lv100盖诺塞克特Lv100基拉帝纳Lv100裂空座Lv100阿尔修斯Lv100丘雷姆
胜利后成为了梦世界联盟冠军,得到魅影幻晶,诞生岛船票,梦之城最右边的人那里可以买东西了
来到水静市坐船,来到诞生岛,以最短路线推三角
推到最红后出现Lv30代欧奇西斯
凯那市或水静市坐船来到对战开拓区,这里冲浪过去
对树使用吼吼鲸喷壶,出现Lv40胡说树
从瀑布下去左边冲浪,来到工匠之穴(即图图犬洞)
从上方的梯子进去,调查石头可捉到闪光大岩蛇,Lv30
到此漆黑魅影攻略宣告完结,对战开拓区就留给诸位去挑战了,有漏掉的地方和不足欢迎指出,小夜在次谢谢大家的支持。
首先用命令/give @a command_block来获得一个命令方块。然后用末地传送门摆放出一个缺了四个角的44结构,再在每个末地传送门上放上末影之眼,激活传送门。
来到末地,找到折跃门方块。把折跃门方块下面的方块拆掉,放上命令方块,并在命令方块里输入以下命令:setblock 1 air 0 destroy,方块类型为脉冲,红石始终活动。启动后折跃门方块就会掉落。
《我的世界》(Minecraft)是一款第一人称视角的沙盒游戏,最初由瑞典游戏设计师马库斯·阿列克谢·泊松单独开发,随后由瑞典公司Mojang AB和4J Studios开发。
《我的世界》呈现的世界并不是华丽的画面与特效,而是注重在游戏性上面。游戏没有剧情,自由度高,玩家可在游戏中自由建设与拆除建筑,可单人娱乐,也可多人联机,更可以安装一些模组来增加游戏趣味性。该游戏曾荣获2018金翎奖年度游戏评选大赛“玩家最喜爱的网络游戏”奖项。
游戏分为生存、创造、冒险、旁观4个游戏模式(极限模式为特殊模式),创造模式版本中虽然可以无限制的创造,但是仅只有付费购买的生存模式版本还有在持续更新中。在创造模式的世界中没有怪物侵略,没有饱腹之忧,更不用担心任何资源的获取,玩家可以飞行,并且无限制的使用任何方块等来建构自己的世界。
至于生存模式就丰富许多,虽然在游戏中能够运用的资源不像是创造模式那样无限使用,而是需要通过不同的方式来获得(矿石开采、种植植物、攻击动物、探险寻宝等),方块携带量也有上限限制。玩家必须运用这些方块来建造建筑、打造器械来抵御怪物的袭击,保护自己。至于有些方块甚至还可以制作成小船、箱子、采矿车或者是轨道等各种道具。
生存模式中玩家将会有一格格的血条,从高处摔落、怪物袭击都会损血,血量的消耗可以吃下食物通过饱食度来恢复,也可以酿造恢复药水来进行恢复,不过一但死亡,身上的所有东西都将掉落在死亡地点,玩家则会在出生点复活,这时候就得趁物品还没消失之前,狂奔回去拾取了。虽然游戏中的天空高度与地表深度都有限制,但是地表的宽度则是接近无边界的平面,《Minecraft》的世界足足可达地球表面积的八倍大(默认36000亿平方千米,理论上可以无限延伸)。