# Chapter 10 - Additional Scenario Ideas - PowerPoint PPT Presentation

1 / 43

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Chapter 10 - Additional Scenario Ideas

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

## Chapter 10 - Additional Scenario Ideas

Bruce Chittenden

### 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.

### 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;

}

### Collision Detection

distance = √ (dx2 + dy2)

marble.getY()

distance

dy

dx

this.getY()

this.getX()

marble.getX()

### 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.

### 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

### 10.4 Circles

Click the Mouse to Create a Circle at That Location

### 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.

### 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

### Breakout (continued)

/*

* 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();

}

}

### 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();

}

}

### 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

### 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.

### 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.
{"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}