Presentation is loading. Please wait.

Presentation is loading. Please wait.

Asteroids Games and Simulations O-O Programming in Java The Walker School The Walker School – Games and Simulations - 2010.

Similar presentations


Presentation on theme: "Asteroids Games and Simulations O-O Programming in Java The Walker School The Walker School – Games and Simulations - 2010."— Presentation transcript:

1 Asteroids Games and Simulations O-O Programming in Java The Walker School The Walker School – Games and Simulations - 2010

2 Asteroids The Walker School – Games and Simulations - 2010 Take some time to play with Asteroids. What can the program do and what can’t it do?

3 Discovering Keyboard Controls The Walker School – Games and Simulations - 2010 Which keyboard key is used to fire a bullet?

4 Explosions The Walker School – Games and Simulations - 2010 Place an explosion into a running scenario. Does it work? What does it do?

5 Painting Stars The Walker School – Games and Simulations - 2010

6 Create a New Scenario The Walker School – Games and Simulations - 2010 Directions 1.Create a new scenario. 2.Save it as “asteriods-lastname”.

7 Create the World The Walker School – Games and Simulations - 2010 Directions 1.Create a new subClass called “Space”. 2.Leave the background empty.

8 Enlarge the Background The Walker School – Games and Simulations - 2010 Directions: 1.Change the size of the world (600, 400, 1). 2.Change the comment.

9 Painting Backgrounds The Walker School – Games and Simulations - 2010 Part IV - http://www.youtube.com/watch?v=rvZ0ErpfHKM&feature=relatedhttp://www.youtube.com/watch?v=rvZ0ErpfHKM&feature=related

10 Import the Java Color Library The Walker School – Games and Simulations - 2010

11 Use Java to Paint Black Background The Walker School – Games and Simulations - 2010

12 Create a method createStars() The Walker School – Games and Simulations - 2010 Comment it out until we create the method.

13 Create a Method Body The Walker School – Games and Simulations - 2010 Takes a parameter of type integer, as we stated we wanted 300 stars.

14 Create The Stars The Walker School – Games and Simulations - 2010 Step through this loop and explain what is happening.

15 For Loops The Walker School – Games and Simulations - 2010 for (initialization; loop-condition; increment) { loop-body; } The initialization part declares and initializes a loop variable. This variable is often called i, and often initialized to 0. The loop condition checks whether our loop variable is still less than a given limit. If it is, the loop will continue. The increment section simply increments the loop variable.

16 Vary Star Brightness The Walker School – Games and Simulations - 2010

17 Rocket Firing The Walker School – Games and Simulations - 2010

18 Turning The Walker School – Games and Simulations - 2010

19 Flying Forward The Walker School – Games and Simulations - 2010

20 Flying Forward The Walker School – Games and Simulations - 2010 Calls the move() method from SmoothMover class. What happens?

21 What Do We Need To Do? Add initial movement to the rocket. To add movement, we need to add force to the rocket. And we need to change its vector. So we’ll need to call this vector from the Vector abstract class. The vector needs 2 variables: direction (dy) and length (dx). The Walker School – Games and Simulations - 2010So where are we going to do this?

22 Adding Drift The Walker School – Games and Simulations - 2010 What happens when you change the variables in the vector?

23 What Do We Need To Do? Create variables to handle each rocket image. Add a method called ignite to checkKeys(), so that we when hit the “up” button, the rocket image is changed. Define a method called ignite. It will need a boolean parameter and a void return type. The Walker School – Games and Simulations - 2010

24 Create a Method Stub to Ignite Rocket The Walker School – Games and Simulations - 2010 Remember to create an instance variable called boosterOn.

25 Igniting the Rocket Boosters The Walker School – Games and Simulations - 2010

26 Colliding with Asteroids The Walker School – Games and Simulations - 2010

27 What Do We Need to Do? If we collide with an asteroid, Remove the rocket from the world; Place an explosion into the world; Show final score (game over); The Walker School – Games and Simulations - 2010

28 Methods for Collision Detection file:///C:/Greenfoot/doc/API/index.html file:///C:/Greenfoot/doc/API/index.html The Walker School – Games and Simulations - 2010 Both methods accept a parameter of type Class, which means we can check for intersections with a specific class of objects if we want to. Which of these 2 methods do we want to use and why?

29 Colliding with Asteroids The Walker School – Games and Simulations - 2010 Remember to call the method in the rocket act() method.

30 Creating Better Explosions Part I - http://www.youtube.com/watch?v=rgZ-_vQ2aIchttp://www.youtube.com/watch?v=rgZ-_vQ2aIc Part II - http://www.youtube.com/watch?v=bdv4ZgTcYyY&feature=relatedhttp://www.youtube.com/watch?v=bdv4ZgTcYyY&feature=related Part III - http://www.youtube.com/watch?v=OFuDEt0xifM&feature=relatedhttp://www.youtube.com/watch?v=OFuDEt0xifM&feature=related Part IV - http://www.youtube.com/watch?v=XMJi4_bzuLw&feature=relatedhttp://www.youtube.com/watch?v=XMJi4_bzuLw&feature=related Part V - http://www.youtube.com/watch?v=TKYwL8p_11A&feature=related http://www.youtube.com/watch?v=TKYwL8p_11A&feature=related The Walker School – Games and Simulations - 2010

31 What Do We Need To Do? Add abstract classes SmoothMover and Vector from Greenfoot. Create a constructor for Debris Update the move() method

32 Casting The Walker School – Games and Simulations - 2010

33 Create the Score Board The Walker School – Games and Simulations - 2010

34 Import Java Libraries The Walker School – Games and Simulations - 2010

35 Create the Assignment Variables The Walker School – Games and Simulations - 2010

36 Create the Constructors Why are their 2 constructors? How is this an example of overloading? The Walker School – Games and Simulations - 2010

37 Make Scoreboard Image The Walker School – Games and Simulations - 2010 So, what else needs to be done?

38 Activity – Change Attributes Modify the ScoreBoard class: – Change the text shown on it. – Change the color of the text. – Change the background and frame colors. – Change the font size so that your text fits well. – Change the width of the scoreboard to suit your text. The Walker School – Games and Simulations - 2010

39 Homework – Scoreboard Search the Greenfoot library for other games that have scoreboards. Study how they were built. What attributes do they have that this board does not? What could you add to your scoreboard? The Walker School – Games and Simulations - 2010

40 Add a Variable for the Counter The Walker School – Games and Simulations - 2010

41 Assign the Counter to the Constructor The Walker School – Games and Simulations - 2010

42 Call the Counter When Game Over The Walker School – Games and Simulations - 2010 How can you make sure that the counter is in the middle of the board without hard coding the numbers?

43 Ensure the Scoreboard is in the Middle of the Background The Walker School – Games and Simulations - 2010 Where do we call the gameOver() method?

44 Call the Game Over Method The Walker School – Games and Simulations - 2010 Example of Casting

45 Casting Casting is the technique of telling the compiler a more precise type for our object then it can work out for itself. We do this by writing the class name (Space) in parentheses before the method call. Once we have done this we can call methods defined in Space space.gameOver(); Casting does not change the type of the object returned. The Walker School – Games and Simulations - 2010

46 Add a Proton Wave What does it do? What doesn’t it do? The Walker School – Games and Simulations - 2010

47 Import the Library The Walker School – Games and Simulations - 2010 We are going to need the Java List class because we are going to create a list of images to create a proton wave that increases in size.

48 Assign Variables The Walker School – Games and Simulations - 2010 How do we make the wave grow?

49 Add A List (Array) to Store Image Set The Walker School – Games and Simulations - 2010 How many images will this list store?

50 Create a Constructer for the Wave The Walker School – Games and Simulations - 2010

51 Create a Method to Initialize Images The Walker School – Games and Simulations - 2010

52 Create a Instance Field to Set Image Count

53 Create a Method to Initialize Images The Walker School – Games and Simulations - 2010 Rewrite the While loop using a For loop. What needs to change?

54 Create a Method Stub to Grow Wave The Walker School – Games and Simulations - 2010

55 Call Method to Grow the Wave The Walker School – Games and Simulations - 2010

56 Add Statements to Grow Wave The Walker School – Games and Simulations - 2010 Square [] brackets, not curly {} brackets here

57 Add Sound to the Proton Wave The Walker School – Games and Simulations - 2010

58 Create a Method Stub to Ignite Proton Wave The Walker School – Games and Simulations - 2010 Where do we create this method?

59 Call Method When “Z” is Pressed The Walker School – Games and Simulations - 2010 What is the problem with the proton wave? 1. It can be released too easily! 2. It doesn’t do anything to the asteroids!

60 Create Reload and Delay for Wave The Walker School – Games and Simulations - 2010

61 Add an Instance Variable for the Delay The Walker School – Games and Simulations - 2010 Where do we create these variables?

62 Assign the Delay to the Constructor The Walker School – Games and Simulations - 2010

63 Add Delay Count to act() Method The Walker School – Games and Simulations - 2010

64 Program the Delay into the Wave The Walker School – Games and Simulations - 2010

65 Interacting with Objects in a Range The Walker School – Games and Simulations - 2010

66 Program a Method Stub to Check for Collision The Walker School – Games and Simulations - 2010 Purpose is to check to see if the wave touches and asteroid. So, in what Class do we create this method?

67 Call it in the Wave act() Method The Walker School – Games and Simulations - 2010

68 Write Statements to Check for Collision The Walker School – Games and Simulations - 2010 Why didn’t we use the “getIntersectingObjects() method? Range is the radius of the circle (wave).

69 hit() Method The Walker School – Games and Simulations - 2010 What are the parameters for this method and what does it return?

70 Evaluating the Damage Constant The Walker School – Games and Simulations - 2010 What happens when you change the damage constant of the proton wave?

71 For Further Development Fix the score counter. Add new asteroids when all have been cleared. Add a level counter. Every time all asteroids are destroyed you go up a level. Add an end of level sound. Add an indicator showing the load state of the proton wave. Add a shield. The Walker School – Games and Simulations - 2010


Download ppt "Asteroids Games and Simulations O-O Programming in Java The Walker School The Walker School – Games and Simulations - 2010."

Similar presentations


Ads by Google