Skip to content

Instantly share code, notes, and snippets.

@N101
Created April 10, 2018 11:31
Show Gist options
  • Save N101/e67b04d241e00a3c04ee9cf4a4ad78d6 to your computer and use it in GitHub Desktop.
Save N101/e67b04d241e00a3c04ee9cf4a4ad78d6 to your computer and use it in GitHub Desktop.
Pacman game in Greenfoot
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.
}
}
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
*/
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);
}
}*/
}
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