Game Development for Fruit Fever by Micah Stairs and William Fiset.
Use the RUN.sh or RUN.bat script to run this program. Here's how:
sh RUN.sh GameStarter
If you want to create your own levels you can execute:
sh RUN.sh DesignerStarter
Fruit Fever adventure game by Micah Stairs and William Fiset
The image is two pixels too far to the left on the spritesheet.
There's a rare bug where you can overshoot the viewX and I'm not sure why..
Can you make two new Variables in FruitFever called LEVEL_WIDTH and LEVEL_HEIGHT. LEVEL_WIDTH would represent the distance from 0 to the furthest block found east and LEVEL_HEIGHT would represent the distance from 0 to the furthest block found south.
This can be done by doing one pass through the block array or doing it as you read in the blocks from the file, you choose.
-Will
Add a simple loading screen at start of game. Hopefully it will resolve issue #11.
The view for the upper boundary works well expect for the fact that the character can only jump โ half of his original height. I assume a countering force of some sort.
This can make it so that the application is non-resizable
Micah, can you add the lava sprite as one of the things I can load in the block part of creating a level (Can you make it the tilde '~' because it looks like a wave ). Also, do NOT put the lava in with the blocks list. I rather you put it in an array of deadly/dangerous sprites.
Thanks,
Will
Re-vamp loading screen with a loading bar and background.
Will: Create a loading bar image (1 pixel wide)
Micah: Code it up!
The Scenery objects are poorly named, and Will should name them a bit better, since he created them after all.
If you look in Block.java there's a static method called ''resetBlockList" that removes blocks in the Block HashMaps I use for the new collision detection method. I need these HashMaps to be emptied at the beginning of every level (So that they don't have blocks from the old level in them). Just make sure you don't load the first selected level and after wipe out the blocks placed the HashMaps (This happened to me several times).
As you hover the mouse over the button the text shifts and doesn't align right
Can we have a way to go back to the menu/level selection interface? Tell me what kind of button you want.
Can you change the location of the gear to the upper right side of the screen? Right now it is clustered with the health.
There is a white-ish pixel which shouldn't be there on the right-hand side of the third (I believe) frame of the animation.
The swirl shooting is out of sync with the character animation.
Powerup ideas: Jump, Attack, Speed
There is sometimes, not always a problem with loading the player in a given location especially when places somewhere in the middle of the screen. It seems to be a problem with the Y position because sometimes the player will get loaded below or over where they're supposed to be. If your near a side usually there is not problem, from experience.
The original viewX, viewY positions need to be stored (default: 0,0).
Format suggestion:
level viewX viewY
Example: (Level 1, viewX = 400, viewY = 200)
1 400 200
The player's shooting animation needs to be slid to the right 25 pixels.
This code fragment in Data.java's loadImages()
playerShoot[i] = makeImage(sheet, TILE_SIZE*15, TILE_SIZE*(i + 1), TILE_SIZE*3, TILE_SIZE);
needs to be replaced with
playerShoot[i] = makeImage(sheet, TILE_SIZE*16, TILE_SIZE*(i + 1), TILE_SIZE*3, TILE_SIZE);
There is a few bad pixels on the right that shouldn't be there.
Looking at the sprite sheet, the banana is overlapping on top of the bottom right block (which is black).
Also, if you look closely at the banana animation, there's a couple bad pixels on the right side in just one of the frames I think.
I was thinking it might be a cool idea to have Names for each of the levels we create. This could give our levels a theme and a way for the user to relate to the level instead of it just being a number (of course the number for selecting the level would still be there). What do you think?
We are going to need more things than swirl teleportation to keep our game original though the 99 levels (maybe not that many) or so that we plan on making. I just want to discuss what kinds of things we might plan on adding in the future.
Current Suggestions:
-Falling Blocks
-Moving Platforms (Group of blocks)
-PowerUps
-Checkpoints
-Achievements
-Multiple Rooms per Level
The fruit animations on level 0 jerk when you move the character past the red border lines (which indicate the movement of viewX/viewY). I assume the fix might require the use of a dy/dx variables to make the movement smooth (This might not be the case because the blocks move smoothly without dy/dx variables (I think!)).
Turn the current applet into an application.
Tree (Blossoms) (6)--> g
Adjust bounding box and origin to make the full image visible.
Add a method to return a re-sized version of an image (particularly useful for the loading screen).
The game freezes for a little bit when trying to press and hold the UP and LEFT arrows or the UP and RIGHT arrows. It doesn't always happen but it happens sometimes. It starts to lag once its on the second jump.
Shift that tile over one pixel.
This bug only seems to appear on Windows. The issue seems to have something to do with the alpha channel, some sort of image conversion is taking place.
Swirl teleportation implementation:
- Only one swirl
- Should teleport user to x/y location
- Don't forget to change the viewX/viewY position
Is there a reason that it takes about 1/2 second for mouse detection to kick in? You can hover the mouse over the buttons but during that first half second and the buttons don't turn red, they remain transparent. If there's an easy fix that would be nice.
If you slide off a platform and try jumping in midair the program will let you do so.
Load at least one character image for me to work with, for now I will use another block. It's not too urgent. Also I plan on having the Player load in as an '@' symbol in the levels.txt. If you could do that it would be great.
The error is the "Error of Doom" as Dr. Ricker says aka the NullPointerException.
Exception in thread "Thread-1" java.lang.NullPointerException
at FruitFever.run(FruitFever.java:70)
at acm.program.Program.runHook(Program.java:1568)
at acm.program.Program.startRun(Program.java:1557)
at acm.program.AppletStarter.run(Program.java:1895)
at java.lang.Thread.run(Thread.java:744)
It seems to originate from the player.motion() method on line 70 but I don't have many leads other than it started after Micah had finished the "hidden" level selection menu.
I was envisioning that the gear would do more than return to the menu. I plan on making a drop down menu where the user will be able to turn the sound Effect on/off and turn the music on/off. That being said the gear returning us to the menu for now is great because we can test multiple levels. The problem is it doesn't load the level view properly haha. I assume the problem is that we're not setting the location of the viewX/viewY properly or are not reading the levels.txt to find the '@' symbol to determine the players location.
If you slide off a platform and try jumping the program will let you do so.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.