Created
April 10, 2018 11:31
-
-
Save N101/e67b04d241e00a3c04ee9cf4a4ad78d6 to your computer and use it in GitHub Desktop.
Pacman game in Greenfoot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) | |
/** | |
* Write a description of class Ghouls here. | |
* | |
* @author (your name) | |
* @version (a version number or a date) | |
*/ | |
public class Ghouls extends Actor | |
{ | |
public void movement() {} | |
/** | |
* Act - do whatever the Ghouls wants to do. This method is called whenever | |
* the 'Act' or 'Run' button gets pressed in the environment. | |
*/ | |
public void act() | |
{ | |
// Add your action code here. | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) | |
/** | |
* Write a description of class Grid here. | |
* | |
* @author (your name) | |
* @version (a version number or a date) | |
*/ | |
public class Grid | |
{ | |
// instance variables - replace the example below with your own | |
private int x; | |
int[][] grid = new int[11][11]; | |
PacMan pacy; | |
/** | |
* Constructor for objects of class Grid | |
*/ | |
public void PmoveLeft(int x, int y) { | |
if (grid[x-1][y] == 1) { | |
grid[x][y] = 0; | |
grid[x-1][y] = 3; | |
} | |
if (grid[x-1][y] == 0) { | |
grid[x][y] = 0; | |
grid[x-1][y] = 3; | |
} | |
} | |
public void PmoveRight(int x, int y) { | |
if (grid[x+1][y] == 1) { | |
grid[x][y] = 0; | |
grid[x+1][y] = 3; | |
} | |
if (grid[x+1][y] == 0) { | |
grid[x][y] = 0; | |
grid[x+1][y] = 3; | |
} | |
} | |
public void PmoveUp(int x, int y) { | |
if (grid[x][y-1] == 1) { | |
grid[x][y] = 0; | |
grid[x][y-1] = 3; | |
} | |
if (grid[x][y-1] == 0) { | |
grid[x][y] = 0; | |
grid[x][y-1] = 3; | |
} | |
} | |
public void PmoveDown(int x, int y) { | |
if (grid[x][y+1] == 1) { | |
grid[x][y] = 0; | |
grid[x][y+1] = 3; | |
} | |
if (grid[x][y+1] == 0) { | |
grid[x][y] = 0; | |
grid[x][y+1] = 3; | |
} | |
} | |
public void GmoveLeft(int x, int y) { | |
if (grid[x-1][y] == 1) { | |
grid[x][y] = 1; | |
grid[x-1][y] = 4; | |
} | |
if (grid[x-1][y] == 0) { | |
grid[x][y] = 0; | |
grid[x-1][y] = 4; | |
} | |
} | |
public void GmoveRight(int x, int y) { | |
if (grid[x+1][y] == 1) { | |
grid[x][y] = 1; | |
grid[x+1][y] = 4; | |
} | |
if (grid[x+1][y] == 0) { | |
grid[x][y] = 0; | |
grid[x+1][y] = 4; | |
} | |
} | |
public void GmoveUp(int x, int y) { | |
if (grid[x][y-1] == 1) { | |
grid[x][y] = 1; | |
grid[x][y-1] = 4; | |
} | |
if (grid[x][y-1] == 0) { | |
grid[x][y] = 1; | |
grid[x][y-1] = 4; | |
} | |
} | |
public void GmoveDown(int x, int y) { | |
if (grid[x][y+1] == 1) { | |
grid[x][y] = 1; | |
grid[x][y+1] = 4; | |
} | |
if (grid[x][y+1] == 0) { | |
grid[x][y] = 1; | |
grid[x][y+1] = 4; | |
} | |
} | |
public void jumpScreen(int x, int y) { | |
if (grid[0][5] == 3) { | |
if (Greenfoot.isKeyDown("a")) { | |
pacy.setLocation(10, 5); | |
} | |
} | |
} | |
public Grid() | |
{ | |
grid[5][8] = 3; | |
grid[5][2] = 4; | |
for (int x = 0; x<1 && x>9; x++) { | |
for (int y = 0; 5<y<<7; y++){ | |
grid[x][y] = 0; | |
} | |
} | |
for (int x = 0; x<11; x++) { | |
for (int y=0; y<1; y++){ | |
grid[x][y] = 2; | |
} | |
for (int y=10; y<11; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=0; x<1; x++) { | |
for (int y=0; y<5; y++) { | |
grid[x][y] = 2; | |
} | |
for (int y=6; y<11; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=10; x<11; x++) { | |
for (int y=0; y<5; y++){ | |
grid[x][y] = 2; | |
} | |
for (int y=6; y<11; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=1; x<2; x++) { | |
for (int y=1; y<2; y++) { | |
grid[x][y] = 2; | |
} | |
for (int y=9; y<10; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=9; x<10; x++) { | |
for (int y=1; y<2; y++) { | |
grid[x][y] = 2; | |
} | |
for (int y=9; y<10; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=3; x<5; x++) { | |
for (int y=2; y<3; y++) { | |
grid[x][y] = 2; | |
} | |
for (int y=8; y<9; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=6; x<8; x++) { | |
for (int y=2; y<3; y++) { | |
grid[x][y] = 2; | |
} | |
for (int y=8; y<9; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=2; x<4; x++) { | |
for (int y=3; y<4; y++) { | |
grid[x][y] = 2; | |
} | |
for (int y=7; y<8; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=7; x<9; x++) { | |
for (int y=3; y<4; y++) { | |
grid[x][y] = 2; | |
} | |
for (int y=7; y<8; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int y=4; y<5; y++) { | |
for (int x=2; x<3; x++) { | |
grid[x][y] = 2; | |
} | |
for (int x=5; x<6; x++) { | |
grid[x][y] = 2; | |
} | |
for (int x=8; x<9; x++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int y=6; y<7; y++) { | |
for (int x=2; x<3; x++) { | |
grid[x][y] = 2; | |
} | |
for (int x=5; x<6; x++) { | |
grid[x][y] = 2; | |
} | |
for (int x=8; x<9; x++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=4; x<7; x++) { | |
for (int y=5; y<6; y++) { | |
grid[x][y] = 2; | |
} | |
} | |
for (int x=2; x<9; x++) { | |
for (int y=1; y<2; y++) { | |
grid[x][y] = 1; | |
} | |
for (int y=9; y<10; y++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int y=2; y<9; y++) { | |
for (int x=1; x<2; x++) { | |
grid[x][y] = 1; | |
} | |
for (int x=9; x<10; x++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int y=5; y<6; y++) { | |
for (int x=1; x<4; x++) { | |
grid[x][y] = 1; | |
} | |
for (int x=7; x<10; x++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int y=2; y<3; y++) { | |
for (int x=2; x<3; x++) { | |
grid[x][y] = 1; | |
} | |
for (int x=8; x<9; x++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int y=8; y<9; y++) { | |
for (int x=2; x<3; x++) { | |
grid[x][y] = 1; | |
} | |
for (int x=8; x<9; x++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int x=4; x<7; x++) { | |
for (int y=3; y<4; y++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int x=4; x<6; x++) { | |
for (int y=7; y<8; y++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int x=6; x<7; x++) { | |
for (int y=3; y<4; y++) { | |
grid[x][y] = 1; | |
} | |
for (int y=7; y<8; y++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int x=3; x<5; x++) { | |
for (int y=4; y<5; y++) { | |
grid[x][y] = 1; | |
} | |
for (int y=6; y<7; y++) { | |
grid[x][y] = 1; | |
} | |
} | |
for (int x=6; x<8; x++) { | |
for (int y=4; y<5; y++) { | |
grid[x][y] = 1; | |
} | |
for (int y=6; y<7; y++) { | |
grid[x][y] = 1; | |
} | |
} | |
} | |
int getValue(int x, int y) { | |
return grid[x][y]; | |
} | |
} | |
/* | |
0 = empty | |
1 = with fruit | |
2 = wall | |
3 = with Pac-man | |
4 = with Ghost | |
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) | |
/** | |
* Write a description of class MyWorld here. | |
* | |
* @author (your name) | |
* @version (a version number or a date) | |
*/ | |
public class MyWorld extends World | |
{ | |
Grid grid = new Grid(); | |
Fruits fruit; | |
PacMan pacy = new PacMan(); | |
Ghouls ghost; | |
/** | |
* Constructor for objects of class MyWorld. | |
* | |
*/ | |
public MyWorld() | |
{ | |
// Create a new world with 600x400 cells with a cell size of 1x1 pixels. | |
super(11, 11, 15); | |
//int x = Greenfoot.getRandomNumber(300); | |
ghost = new Ghouls(); | |
Fruits fruit = new Fruits(); | |
addObject(pacy, 5, 8); | |
addObject(ghost, 5, 2); | |
paintMap(); | |
} | |
void paintMap() { | |
for (int x = 0; x<11; x++) { | |
for (int y = 0; y < 11; y++) { | |
if (grid.getValue(x, y) == 0) { | |
getBackground().setColor(greenfoot.Color.BLACK); | |
} | |
if (grid.getValue(x, y) == 1) { | |
//removeObject(fruit); | |
getBackground().setColor(greenfoot.Color.GRAY); | |
//addObject(fruit, x, y); | |
} | |
if (grid.getValue(x, y) == 2) { | |
getBackground().setColor(greenfoot.Color.BLUE); | |
} | |
if (grid.getValue(x, y) == 3) { | |
removeObject(pacy); | |
getBackground().setColor(greenfoot.Color.BLACK); | |
addObject(pacy, x, y); | |
} | |
if (grid.getValue(x, y) == 4) { | |
removeObject(ghost); | |
getBackground().setColor(greenfoot.Color.GRAY); | |
addObject(ghost, x, y); | |
} | |
getBackground().fillRect(x*15, y*15, 14, 14); | |
} | |
} | |
} | |
public void act() { | |
if (Greenfoot.isKeyDown("w" )) { | |
grid.PmoveUp(pacy.getX(), pacy.getY()); | |
} | |
if (Greenfoot.isKeyDown("s" )) { | |
grid.PmoveDown(pacy.getX(), pacy.getY()); | |
} | |
if (Greenfoot.isKeyDown("d" )) { | |
grid.PmoveRight(pacy.getX(), pacy.getY()); | |
} | |
if (Greenfoot.isKeyDown("a" )) { | |
grid.PmoveLeft(pacy.getX(), pacy.getY()); | |
} | |
if (Greenfoot.isKeyDown("UP" )) { | |
grid.GmoveUp(ghost.getX(), ghost.getY()); | |
} | |
if (Greenfoot.isKeyDown("DOWN" )) { | |
grid.GmoveDown(ghost.getX(), ghost.getY()); | |
} | |
if (Greenfoot.isKeyDown("RIGHT" )) { | |
grid.GmoveRight(ghost.getX(), ghost.getY()); | |
} | |
if (Greenfoot.isKeyDown("LEFT" )) { | |
grid.GmoveLeft(ghost.getX(), ghost.getY()); | |
} | |
//atEdge(pacy.getX(), pacy.getY()); | |
paintMap(); | |
} | |
/* void jumpScreen() { | |
if (grid[0][5] == 3) { | |
if (Greenfoot.isKeyDown("a")) { | |
removeObject(pacy); | |
addObject(pacy, 10, 5); | |
} | |
} | |
} | |
/*public void atEdge(int x, int y) { | |
if (pacy.getX() == 0) { | |
removeObject(pacy); | |
addObject(pacy, 10, 5); | |
} | |
if (pacy.getX() == 10) { | |
removeObject(pacy); | |
addObject(pacy, 0, 5); | |
} | |
}*/ | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) | |
/** | |
* Write a description of class PacMan here. | |
* | |
* @author (your name) | |
* @version (a version number or a date) | |
*/ | |
public class PacMan extends Actor | |
{ | |
public PacMan() { | |
GreenfootImage pacmanimage = getImage(); | |
pacmanimage.scale(pacmanimage.getWidth() - 16, pacmanimage.getHeight() - 16); | |
setImage(pacmanimage); | |
} | |
/** | |
* Act - do whatever the PacMan wants to do. This method is called whenever | |
* the 'Act' or 'Run' button gets pressed in the environment. | |
*/ | |
public void act() | |
{} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment