Basically i have created a snake game where the snake eats a piece of food and it grows but i would also like to speed up ive tried alot of things but i still cant seem to speed it up. THis is how far i have got so far…
setupgame()
function setupgame() {
bodypart0.gotoAndStop(1)
direction = ''
if (bodypartsy) {
for (i=bodypartsy.length-1;i > 0; i--) {
removeMovieClip(eval('bodypart'+i))
}
}
popup._visible = false
bodypart._visible = false
do {
food._x = snakepit._x + Math.floor(((snakepit._width-food._width)/food._width)*Math.random())*food._width
food._y = snakepit._y + Math.floor(((snakepit._height-food._height)/food._height)*Math.random())*food._height
bodypart0._x = snakepit._x + Math.floor(((snakepit._width-food._width)/food._width)*Math.random())*food._width
bodypart0._y = snakepit._y + Math.floor(((snakepit._height-food._height)/food._height)*Math.random())*food._height
} while(bodypart0._x == food._x && bodypart0._y == food._y);
framecount = 0;
score = 0
game = true;
bodypartsx = new Array();
bodypartsy = new Array();
bodypartsx.push(bodypart0._x)
bodypartsy.push(bodypart0._y)
}
trace("food"+food)
trace("framecount"+framecount)
this.onEnterFrame = function(){
framecount = framecountMath.sqrt(food)
}
this.onEnterFrame = function () {
if (game) {
if (framecount/5 == Math.ceil(framecount/5)) {
if (
!(bodypart0._y <= snakepit._y && direction == 'up') &&
!(bodypart0._y+bodypart0._height >= snakepit._y+snakepit._height-2 && direction=='down') &&
!(bodypart0._x+bodypart0._width >= snakepit._x+snakepit._width - 2 && direction =='right') &&
!(bodypart0._x <= snakepit._x && direction == 'left'))
{
bodypartsy[0] = bodypart0._y
bodypartsx[0] = bodypart0._x
for (i=bodypartsy.length-1;i > 0; i--) {
eval('bodypart'+i)._y = bodypartsy[(i-1)]
eval('bodypart'+i)._x = bodypartsx[(i-1)]
bodypartsy* = eval('bodypart'+i)._y
bodypartsx* = eval('bodypart'+i)._x
}
}
if (food._x == bodypart0._x && food._y == bodypart0._y) {
eat()
}
if (direction) {
if (direction == 'up') {
if (bodypart0._y <= snakepit._y) {
dead()
}
else {
bodypart0._y-= bodypart0._width
}
}
else if (direction == 'down') {
if (bodypart0._y+bodypart0._height >= snakepit._y+snakepit._height-2) {
dead()
}
else {
bodypart0._y+= bodypart0._width
}
}
else if (direction == 'right') {
if (bodypart0._x+bodypart0._width >= snakepit._x+snakepit._width - 2) {
dead()
}
else {
bodypart0._x+= bodypart0._width
}
}
else if (direction == 'left') {
if (bodypart0._x <= snakepit._x) {
dead()
}
else {
bodypart0._x-= bodypart0._width
}
}
}
}
if (game) {
if (insideSnake(bodypart0._x,bodypart0._y,true)) {
dead()
}
}
}
framecount++
}
keyListener = new Object();
keyListener.onKeyDown = function () {
keycode = Key.getCode()
if (keycode == 37) {
direction = 'left'
}
else if (keycode == 38) {
direction = 'up'
}
else if (keycode == 39) {
direction = 'right'
}
else if (keycode == 40) {
direction = 'down'
}
};
Key.addListener(keyListener);
function dead() {
popup.score = 'score: '+(bodypartsx.length-1)
popup.swapDepths(this.getNextHighestDepth())
popup._visible = true
bodypart0.gotoAndStop(2)
game = false;
}
function eat() {
duplicateMovieClip(bodypart,'bodypart'+bodypartsy.length,this.getNextHighestDepth())
bodypart0.swapDepths(this.getNextHighestDepth())
eval('bodypart'+bodypartsy.length)._y = eval('bodypart'+(bodypartsy.length-1))._y
eval('bodypart'+bodypartsx.length)._x = eval('bodypart'+(bodypartsy.length-1))._x
bodypartsy.push(eval('bodypart'+bodypartsy.length)._y)
bodypartsx.push(eval('bodypart'+bodypartsx.length)._x)
do {
food._x = snakepit._x + Math.floor(((snakepit._width-food._width)/food._width)*Math.random())*food._width
food._y = snakepit._y + Math.floor(((snakepit._height-food._height)/food._height)*Math.random())*food._height
} while(insideSnake(food._x,food._y));
score = bodypartsx.length-1
}
function insideSnake(xneedle, yneedle,skiphead) {
if (skiphead) { startat = 1; }
else { startat = 0; }
for (q=startat; q<bodypartsx.length; q++) {
//each entry is compared to the required value
if (bodypartsx[q] == xneedle) {
if (bodypartsy[q] == yneedle) {
//true is returned when found
return true;
}
}
}
//otherwise, false is returned
return false;
}
popup.againbutton.onRelease = function() {
setupgame()
}