private void soundWalk() { // if the player is moving and not jumping we play the walk sound if (Globals.player.moving() && !Globals.player.jumping() && !Globals.player.falling()) { // if the sound is still playing we let it play if (!soundWalk.playing()) { soundWalk.loop(); } // We modulate the sound speed depending on the speed of movement of // the character float pitchVel = 0; if (Globals.player.facingRight()) { pitchVel = 0.5f + 1 / (1 / (Globals.player.getVelX() / Globals.player.stepRate())); // System.out.println(pitchVel+" lol"); } else { pitchVel = 0.5f + -1 / (1 / (Globals.player.getVelX() / Globals.player.stepRate())); // System.out.println(pitchVel+" lool"); } // for security if (pitchVel > 10) pitchVel = 10; if (pitchVel < 0.001) pitchVel = 0.001f; soundWalk.setPitch(pitchVel); } // we stop the sound because the character is no more walking else { soundWalk.stop(); } }
private void soundJump() { // if the player is jumping or falling we play the jump sound if (Globals.player.jumping() || Globals.player.falling()) { // if the sound is still playing we let it play if (!soundJump.playing()) { soundJump.loop( 1f, 0.5f, Globals.player.getX() - Globals.player.getWidth() / 2, Globals.player.getY() - Globals.player.getHeight() / 2, 0.0f); soundJumpPlaying = true; } else { soundJump.setSourcePosition( Globals.player.getX() - Globals.player.getWidth() / 2, Globals.player.getY() - Globals.player.getHeight() / 2, 0.0f); } // We modulate the sound pitch depending on the y speed of movement // of the character float pitchVel = 0; pitchVel = 0.1f + Globals.player.getVelY() / 120f; // System.out.println(pitchVel+" lol"); // because the y velocity can be positive or negative depending on // falling or jumping if (pitchVel < 0) pitchVel = -pitchVel; // for security if (pitchVel > 10) pitchVel = 10; if (pitchVel < 0.0001) pitchVel = 0.0001f; soundJump.setPitch(pitchVel); } // we stop the sound because the character is no more jumping else { soundJump.stop(); } }
@Override public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException { Input input = gc.getInput(); // If the beginning explanation is finished if (playTheGame) { // if the player is not dead if (!dead) { if (movingUp) { dudeHeight -= ((double) delta) / 10.0; } else { dudeHeight += ((double) delta) / 10.0; } float coeff = (wallOffset - dudeSize.width / 2) / WALL_RES; actualUpperWall = (int) (upperWall.get(currentWallNo - 1) - coeff * (upperWall.get(currentWallNo) - upperWall.get(currentWallNo - 1))); actualLowerWall = (int) (lowerWall.get(currentWallNo - 1) - coeff * (lowerWall.get(currentWallNo) - lowerWall.get(currentWallNo - 1))); // TODO The speed can be adjusted here wallOffset -= (float) delta * speed; speed += ((double) delta / 1000000000.0) * 2000; if (wallOffset <= -WALL_RES) { wallOffset += WALL_RES; popWall(); addToWall(); } distance += delta; // detect collisions // TODO Improve collision detection to find the edge of the box // against the edge of the cave. if ((dudeHeight + SENSITIVITY) > actualLowerWall || (dudeHeight - SENSITIVITY) < actualUpperWall) { dead = true; // voix.playText("Le je est terminé, votre score est de "+ distance/1000); } // the start explosion explosion.update(delta * 2); // the smoke trail trail.update(delta); } // If we are dead else { sonD.stop(1); sonG.stop(); // if we are in main game if (Globals.returnState != Songe.MAINMENUSTATE) { // The score is set Globals.score += distance / 1000; Globals.nextEvent(sbg); } // if playing from the stand-alone version else { sbg.enterState( Globals.returnState, new FadeOutTransition(Color.black), new FadeInTransition(Color.black)); } } } // if not yet started to play else { sonG.setVolume(0f, 0); sonD.setVolume(0f, 1); if (input.isKeyPressed(Input.KEY_UP)) { playTheGame = true; sonG.setVolume(600f, 0); sonD.setVolume(600f, 1); // sonG.setPitch(0.8f, 0); // sonD.setPitch(0.8f, 1); enterSound.stop(); } else if (input.isKeyPressed(Input.KEY_F1)) { enterSound.stop(); enterSound.play(); } } if (input.isKeyPressed(Input.KEY_ESCAPE)) { sbg.enterState( Globals.returnState, new FadeOutTransition(Color.black), new FadeInTransition(Color.black)); } spX -= delta * 4.0f * speed; }