请问 贪吃蛇游戏中 如何控制蛇身的 节数的
使用一个数组吗?可是这个数组是不是应该 可以动态的改变数组的数量(如开始是8节
吃到食物后变成9节,这时数组是不是应该变成linl(9))
那位有中文注释的代码 给一份
问题点数:20、回复次数:7Top
1 楼caloo(小鲁)回复于 2004-05-04 16:32:32 得分 0
贪吃蛇用链表实现应该是最好的!
Java里追加数组长度好像是做不到的,如果哪位高手知道的话,请赐教!Top
2 楼ffgg(探索中...)回复于 2004-05-04 21:01:26 得分 5
MIDP下并没有List,推荐用VectorTop
3 楼007JavaKing(乖乖咙的咚)回复于 2004-05-05 01:00:31 得分 5
用VECTOR。Top
4 楼ziyang(botail)回复于 2004-05-05 08:25:30 得分 10
if ((direction != currentDirection) && !needUpdate) {
// 取出列表中的最后一个元素(蛇的头部)
int x = sl.getEndX();
int y = sl.getEndY();
// 不同的运动方向坐标的改变也不一样
switch (direction) {
case UP: // 当这段向上运动的时候
if (currentDirection != DOWN) {
y--;
needUpdate = true;
}
break;
case DOWN: // 当这段向下运动的时候
if (currentDirection != UP) {
y++;
needUpdate = true;
}
break;
case LEFT: // 当这段向左运动的时候
if (currentDirection != RIGHT) {
x--; needUpdate = true;
}
break;
case RIGHT: // 当这段向右运动的时候
if (currentDirection != LEFT) {
x++;
needUpdate = true;
}
break;
}
// 当更改方向后需要更新
if (needUpdate == true) {
worm.addElement(new WormLink(x, y, 0, direction));//worm is a Vector type
currentDirection = direction;
}
}
贪吃蛇是由一节一节小方格组成的,许多节构成一个段。转弯的时候蛇就变成两段。
再根据段头方向的不同而判断。链表中保存的第一个元素是蛇的尾巴段,最后一个元素是蛇的头部段。当蛇运动的时候,它头部段增加一节而尾段减少一节。如果它吃到了食物,尾部段就不减少一节。也就是说,蛇是从头部段开始长的。在J2ME里,我们一般处理链表用Vector。这就是一些基本的。其他的你自己搞定。祝你好运!
Top
5 楼yg1982(游)回复于 2004-05-05 10:45:09 得分 0
看下wtk自带的源程序,看其中的WormLink类Top
6 楼programer23(亮子)回复于 2004-05-06 16:47:30 得分 0
ziyang(botail) 讲的不错!Top
7 楼legsion(小风)回复于 2004-05-06 18:43:58 得分 0
http://www.yesky.com/SoftChannel/72342371878043648/20030818/1722333.shtml,你可以看看这个链接,详细的讲解了wtk所带的那个蚕食蛇的例子。Top




