1 / 43

Chapter 10 - Additional Scenario Ideas

Chapter 10 - Additional Scenario Ideas. Bruce Chittenden. 10.1 Marbles. Marbles (continued). Marbles (continued). Collision Detection.

august
Download Presentation

Chapter 10 - Additional Scenario Ideas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10 - Additional Scenario Ideas Bruce Chittenden

  2. 10.1 Marbles

  3. Marbles (continued)

  4. Marbles (continued)

  5. Collision Detection The Marbles scenario does not use any of the built-in Greenfoot collision detection methods, since these all work on the rectangular actor images. The Marbles Scenario on the other hand are round and we need precise collision for this image.

  6. haveHit(Marble marble ) /* * Check whether we have hit the given marble. We have hit it if its distance from us * (measured at the centre points) is less then our diameter. */ private boolean haveHit(Marble marble) { int dx = Math.abs (this.getX() - marble.getX()); int dy = Math.abs (this.getY() - marble.getY()); double distance = Math.sqrt(dx*dx+dy*dy); return distance < DIAMETER; }

  7. Collision Detection distance = √ (dx2 + dy2) marble.getY() distance dy dx this.getY() this.getX() marble.getX()

  8. 10.2 Lifts

  9. Lifts (continued)

  10. Lifts (continued) The Lifts scenario is a simple elevator simulation. It shows several floors of a multistory building and three elevators moving up and down. People appear on the floors and press the call buttons and enter the elevators when they come. To finish this scenario the movement of people would have to be properly modeled in and out of the elevators.

  11. 10.3 Boids

  12. Boids (continued)

  13. Boids (continued)

  14. Boids Algorithm • The term “Boids” comes from a program developed in 1986 by Craig Reynolds that first implemented this flocking algorithm. In it each bird flies according to three rules: • Separation: Steer away from other birds if getting too close • Alignment: Steer toward the average heading of other birds in the vicinity • Cohesion: Steer to move toward the average position of other birds in the vicinity

  15. 10.4 Circles Click the Mouse to Create a Circle at That Location

  16. Circles (continued)

  17. Circles Nice to Look At The Circles scenario is a scenario that does not seem to have much of a purpose but is interesting to play with and nice to look at.

  18. 10.5 Explosion

  19. Explosion (continued)

  20. Explosion (continued)

  21. Explosion (continued)

  22. Explosion (continued)

  23. Explosion (continued)

  24. Explosion (continued)

  25. Explosion (continued)

  26. Explosion (continued)

  27. Explosion (continued)

  28. Explosion (continued)

  29. Explosion (continued)

  30. More Spectacular Explosion The Explosion scenario demonstrates how we can implement a more spectacular looking explosion effect. To achieve this effect, we have a Debris class that represents a part of the rock. When the rock explodes, we remove it from the world and place 40 pieces of debris in its place. See the tutorial video at http://www.greenfoot.org/doc/videos.html

  31. 10.6 Breakout

  32. Breakout (continued)

  33. act Method Paddle /* * Act - do whatever the Paddle wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { if (Greenfoot.isKeyDown ("left")) { move(-9); } if (Greenfoot.isKeyDown ("right")) { move(9); } if (haveBall() && Greenfoot.isKeyDown ("space")) { releaseBall(); } }

  34. 10.7 Platform Jumper

  35. Platform Jumper (continued)

  36. Platform Jumper (continued)

  37. act Method Pengu private void checkKeys() { if (Greenfoot.isKeyDown("left") ) { setImage("pengu-left.png"); moveLeft(); } if (Greenfoot.isKeyDown("right") ) { setImage("pengu-right.png"); moveRight(); } if (Greenfoot.isKeyDown("space") ) { if (onGround()) jump(); } }

  38. Platform Jumper A very common style game is a “platform” game. The player typically controls a game character that has to move from one are on the screen to another, while over coming various obstacles. This scenario demonstrates how an actor can move along the top of another actor (the penguin on top of the ground), and how jumping and falling might be implemented. See the tutorial video at http://www.greenfoot.org/doc/videos.html

  39. 10.8 Wave

  40. Wave (continued)

  41. Wave (continued)

  42. Wave One of the fascinating aspects of this scenario is how a fairly simple implementation achieves a quite sophisticated simulation of various aspects of wave propagation. In each act round, each bead simply moves toward the middle of its two neighbors.

  43. 10.9 Summary When you program in other environments, outside of Greenfoot, you will have to learn new skills and techniques, but everything you have learned using Greenfoot will be useful and applicable.

More Related