Mr.Gulp

Published:

Demo

Responsibility

In the “Mr Gulp” project, I’m mainly in charge of the UI interface and fixing bugs. I also created the Time-limited mode and updated my teammates’ codes to suits the interface. The general process of my work is as follows.

  • Learn how to create a frame. Know the reference between panel and label. Create button.
  • Using button listener, achieve the transform between the frame and how to close the program.
  • Learn how to add a picture into the program. Failed. Did nothing during the winter vacation because of this.
  • Back to school, keep trying until realized the pictures are in the wrong place with the help of Jason. Start to draw the start frame, start and close buttons. Learn how to remove the rectangle frame of the button.
  • Draw an easy player image; add the image to Jason’s code. Draw an easy background, adding to the game interface. Get the idea of changing the image of the mouse cursor and draw the images. Learn how to change the mouse cursor from the Internet.
  • Learn how to add music.
  • Add mouse listener to listen to the button. Add music and make the button alive.
  • Draw the player image of the original form. Get the idea of the player’s evolution with different image and music.
  • Draw the game-over interface.
  • Draw difficulty chosen interface.
  • Draw the icon image.
  • Learn how to use the card layout and draw the introduction of the game. (Alpha)
  • Cancel the menu bar, and add three buttons in the game-over interface, including the retry button. Add code to judge game win and draw game win interface. Draw the background of the leaderboard. (Beta)
  • Add a Time-limited mode to the game, adding the count-down interface. Draw a leaderboard and bug fixed.
    • Shows win after being gulped by the last enemy. (Fixed)
    • The biggest enemy ‘breaks’ the wall and moves away… (Fixed)
    • The bigger enemy is afraid of the player. (Fixed)
  • Clean the useless code at last. (Final)

Output

Firstly, I learned how to use the JFrame, JPanel, JLabel, and JButton to achieve the program’s primary interface. This is the easy part of my work package. Secondly, I learned how to add images to the program, one is ImageIcon, and the other is Toolkits. This part really confused me for a very long time, causing a long pause in my process. Then, in the end, I realized it’s just a tiny issue. Thirdly, I learned how to add music to the game. I read a book, wrote a whole class to play the music. But later, I found Jason had already written a function about this which was much more convenient. Fourthly, get the idea of using a card layout to achieve the introduction interface. So I learned the Card layout, which is not hard work. The only problem is the buttons can’t show in this layout. To solve this, I draw the button’s image on the introduction images, pretending the button’s image is always there… For me, draw these images is much complicated than learning card layout. Finally, I learned a little about the system time to achieve the count down the interface. It’s not confusing.

We write our own code on Jason’s fundamental code. After a while, we combine our new code and send it to everyone. So it’s straightforward for me to incorporate my code because I have no need to. They add their code to my code, and then I send the new version to them.

I wouldn’t manage the project differently if I had to do it again. I think our task is perfect this time. And I’m really proud of my team and our work out.

Report

After our team was set up, we decided to make a game. Every one of us had new ideas for making the game more creative. I feel we are fortunate that we didn’t accept my Pac-man idea at that time, which was many group’s choices. We took Frank’s idea, and Jason named our game “Mr Gulp”.

What worked well as a team?

As for me, everyone’s function of the team is the best part of the whole process. Jason is in charge of the main body (Control, Leader Board), Frank handles AI (Chasing, Refreshing), and I’m the team leader who takes care of the UI (Interfaces, Fixing Bugs). At the beginning of the project, we didn’t know how to achieve our project, so everyone just started learning some new knowledge and typing some codes. The process of the game was prolonged. Then during the whole winter vacation, Frank and I didn’t know what should we do. Thanks for Jason! He used his winter vacation, making the original version of our game, which means he achieved his Control part of his work package. So Frank and I had a basement to work on, which make our job more clearly. When we got confused about Jason’s code, we asked him, and such communication was beneficial for us to achieve the aiming function. Frank was thinking about achieving the AI all day, and I was typing the code of interfaces, drawing images by using Photoshop when I had time. To be honest, although drawing such a lot of images was tiring, I was really fond of my job. I want to make our game looks nice and more like a game. Under this pattern, everyone showed his abilities, making the game better and better.

What did not work well as a team?

Everything was brilliant. I don’t think there’s anything wrong or bad with our cooperation. The minor problem we met was sometimes we got a little different view of one part. But we can sit around, and everyone expresses their idea, figuring out the best idea for the specific problem.

How would I plan to work together again on a project like this?

I can’t get the idea of how to make the process better. Maybe it’s a little hard for Jason to finish the basic version, but he gets the ability, and we trust him.

How did my team members help me?

Jason helped me a lot on how to show the images on the interface. He checked my code and told me how he handled this. With his help, I found that I put the images in the wrong places. What’s more, Frank and I often asked Jason what did this or that part of his code means. He was really delighted to answer all such boring questions. Frank helped me with the specific problem I met on the logic. When I used system time to achieve the count down, it showed difficulty to let the code catch the start time plus 20 sec. And Frank gave me the idea of letting the code bigger than the start time plus 20 sec, which immediately solved the problem.

How did I help the team?

As a team leader, I spent a lot of my time with our project. Play our game repeatedly, trying to find bugs and figure out what we can improve (So I am the best player in our team). At the end of the process, I cleaned up all useless code to make the game more fluently and found the bug sources called “Bigger guy breaks the wall and moves away”, then fixed it.