// змейка будет двигаться как только нужная задержка была достигнута // обрабатывает внесенные изменения и обновляет игровое поле @Override public void update(long nanosPassed) { processInput(); if (!paused) { if (isGameOver()) { game.setScene(new GameOverScence(game, panel, delay)); return; } if (snakeMoveDelay.updateAndCheck(nanosPassed)) { stepsCount++; mlSeconds += 200; String seconds = Clock.getTime(mlSeconds); panel.setData(seconds, stepsCount, appleCount); snake.move(); // удлинение змейки, при поедании яблока BodyPart head = snake.head(); if (head.getX() < 1) { head.setX(WORLD_WIDTH); } if (head.getX() > WORLD_WIDTH) { head.setX(1); } if (head.getY() < 1) { head.setY(WORLD_HEIGHT); } if (head.getY() > WORLD_HEIGHT) { head.setY(1); } if (head.getX() == apple.getX() && head.getY() == apple.getY()) { List<BodyPart> body = snake.getBody(); BodyPart lastPart = body.get(body.size() - 1); body.add(new BodyPart(lastPart.getX(), lastPart.getY())); ++appleCount; if (isGameOver()) { game.setScene(new GameOverScence(game, panel, delay)); } else { placeApple(); } } } } }
// set status led state and wait a second public static void main(String[] args) throws IOException { char test = 0; int servo_position = 6; System.out.println("NanoVM - console echo demo"); System.out.println("Please press some keys ..."); // adc_value150 이상일경우 흰색 150이하 일경우 검은색 ADC.setEnable(1, ADC.ENABLE); ADC.setEnable(2, ADC.ENABLE); ADC.setEnable(3, ADC.ENABLE); ADC.setEnable(4, ADC.ENABLE); Servo.release(0); int adc_value1, adc_value2, adc_value3, adc_value4; boolean enabled; while (true) { if (System.in.available() != 0) { test = ((char) System.in.read()); System.out.print(test); } else { test = 0; } if (test == 'w') { Motor.setSpeed(0, 80); } else if (test == 's') { Motor.stop(); } // Servo.setPosition(0,12);// 12 enabled = ADC.getEnable(1); adc_value1 = ADC.getADC(1); System.out.println("adc1 " + adc_value1); enabled = ADC.getEnable(2); adc_value2 = ADC.getADC(2); System.out.println("adc2 " + adc_value2); enabled = ADC.getEnable(3); adc_value3 = ADC.getADC(3); System.out.println("adc3 " + adc_value3); enabled = ADC.getEnable(4); adc_value4 = ADC.getADC(4); System.out.println("adc4 " + adc_value4); if (adc_value2 < 150 || adc_value3 < 150) { Servo.setPosition(0, 6); } else if (adc_value1 < 150 && adc_value2 < 150) { Servo.setPosition(0, 9); } else if (adc_value4 < 150 && adc_value3 < 150) { Servo.setPosition(0, 3); } else if (adc_value1 < 150) { Servo.setPosition(0, 9); } else if (adc_value4 < 150) { Servo.setPosition(0, 3); } Clock.delay_ms(10); } }