Snake en Arduino

download Snake en Arduino

If you can't read please download the document

description

este es el codigo para hacer el clasico juego del snake en arduino con matrices led

Transcript of Snake en Arduino

/*Versin del juego clssico del SNAKE programado para el taller Processing y Arduino II en el CAMON de Alacant, que el autor impartido por Quelic Berga, Daniel Garca i Joan Soler-Adillon http://www.tucamon.es/contenido/workshop-arduino-processing-introduccion-herramientas-y-diseno-interaccion Este programa est diseado para ser utilitzado tanto por usuarios noveles como avanzados. Para los primeros, existen una serie de variables al principio de todo (bajo el ttulo de "variables principales" que determinan todos los aspectos importantes de juego. Slo manipulando estos valores se vern cambios importantes en el juego. *///////////////////////// VARIABLES PRINCIPALES////------PANTALLA------------:////"Quadrcula-Va" para la serpiente: empieza en:int gridStart = 25;//"Quadrcula-Va" para la serpiente: cada cuantos pxels:int gridSpacing = 15;//"Quadrcula-Va" para la serpiente: cuantas filas:int gridRows = 40;//"Quadrcula-Va" para la serpiente: cuantas columnas:int gridColumns = 30;//color de los elemen//Ancho de la pantalla (dependiente de lo previo):int theWidth = gridStart*2+gridSpacing*gridRows;//Alto de la pantalla (dependiente de lo previo):int theHeight = gridStart*2+gridSpacing*gridColumns; //Color de los grficoscolor screenColor = color(0,255,0);//color de fondocolor backgroundColor = color(0);////------JUEGO------------:////Milisegundos de separacin entre cada paso del juego (FPS del juego, o velocidad)//esto es lo que ira disminuyendo al aumentar el juego de nivelint gameSpeed =80;////------SERPIENTE------------:////Dimetro de la cabezaint headSize =13;//Dimetro de la colaint tailSize =9;//Largo inicial de la colaint tailLength =5;//velocidadint snakeSpeed = gridSpacing;////------COMIDA-----------:////Dimetro del elemento comidaint foodSize = 6;//Frequencia a la que aparece la comida (en milisegundos)int foodFrequence =5000;//Tiempo que est la comida en pantalla (en milisegundos)//mejor si es menor al nmero anteriorint foodLiveSpan =3500;//////// FIN DE VARIABLES PRINCIPALES////////////////////////////////////////////////////creamos los objetos para el juegosnake serp;//variable para controlar el tiempo:4int tiempo, tiempoComida;//para guardar la comida...ArrayList foodArray = new ArrayList();//Funcin de inicializacin (SETUP);void setup(){ //establecemos tamao de pantalla //size(theWidth,theHeight); size(650,500); //smooth para suavizar grficos //smooth(); serp = new snake(headSize,tailSize,tailLength,snakeSpeed,gridStart, gridStart+(gridSpacing*gridColumns/2)); fill(screenColor); stroke(screenColor); // frameRate(5); //pintamos el fondo background(backgroundColor); serp.update(); drawWalls(); rectMode(CENTER);}//Funcin Bucle:void draw(){ // println(millis()+" --- "+tiempo+"_______"+gameSpeed); // println(millis()-tiempo > gameSpeed); //Si hay que hacer otro paso en el juego: if(millis()-tiempo > gameSpeed){ //pintamos el fondo background(backgroundColor); //dibujamos la cuadrcula (para debugging) //drawGrid(); drawWalls(); //Comida println(millis()-tiempoComida); println((millis()-tiempoComida > foodFrequence)); if(millis()-tiempoComida > foodFrequence){ println("menjar!"); foodArray.add(new food(foodSize,foodLiveSpan)); //y tambin pa la comida tiempoComida = millis(); } //ms Comida for(int i=0; i