Created
February 21, 2012 21:14
-
-
Save RobertShippey/1878992 to your computer and use it in GitHub Desktop.
Pacman - Will
This file contains hidden or 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
#include "stdafx.h" | |
#include "gwin.h" | |
class Pacman { | |
public: | |
int x; | |
int y; | |
int Scale; | |
// direction | |
int dx; | |
int dy; | |
int d; | |
Pacman(); | |
void draw(GWindow &); | |
void move(); | |
void aimLeft(); | |
void aimUp(); | |
void aimDown(); | |
void aimRight(); | |
void screen(); | |
int ox, oy; | |
private: | |
int speed; | |
GSprite pac; | |
//GSprite pacD; | |
GImage image[4][3]; | |
//four directions, three phases | |
/*GImage image; | |
GImage image2; | |
GImage image3; | |
GImage imageD1; | |
GImage imageD2; | |
GImage imageD3;*/ | |
}; | |
int main() { | |
GWindow Gwin; | |
Gwin.showDebugOverlay(false); | |
bool quitting =false;//flag to exit game loop when specific key pressed | |
Pacman myPacman;// Clear the Gwin window??? | |
while (!quitting) { | |
// check for any user inputs | |
if (Keyboard.isPressed(GwinKeyNames::CURSOR_RIGHT)) { | |
myPacman.aimRight(); | |
} | |
if (Keyboard.isPressed(GwinKeyNames::CURSOR_DOWN)) { | |
myPacman.aimDown(); | |
} | |
if (Keyboard.isPressed(GwinKeyNames::CURSOR_UP)) { | |
myPacman.aimUp(); | |
} | |
if (Keyboard.isPressed(GwinKeyNames::CURSOR_LEFT)) { | |
myPacman.aimLeft(); | |
} | |
if (Keyboard.isPressed(GwinKeyNames::SPACE)) { | |
quitting =true; | |
} | |
if (Keyboard.isPressed(GwinKeyNames::ESCAPE)) { | |
quitting=true; | |
} | |
// Update state of game (nothing much here yet) | |
myPacman.move(); | |
//Display current state of game | |
Gwin.clear(BLACK); | |
myPacman.draw(Gwin); | |
myPacman.screen(); | |
Gsleep(20); | |
Gwin.refresh(); | |
Gwin.setPenColour(WHITE); | |
Gwin.writeInt(400,50,myPacman.x); | |
Gwin.writeInt(400,70,myPacman.y); | |
Gwin.writeText(100,300,"Test"); | |
} | |
Gwin.clear(CYAN); | |
Gwin.setPenColour(RED); | |
Gwin.writeText(100,100, "bye bye"); | |
Gwin.refresh(); | |
Gsleep(1000); | |
return 0; | |
} | |
Pacman::Pacman() { | |
d=1; | |
//set up sprite for animation | |
GError err = image[0][0].loadImage(GPath("pacman/pictures/pacmanR1.bmp").transform()); | |
image[0][1].loadImage(GPath("pacman/pictures/pacmanR2.bmp").transform()); | |
image[0][2].loadImage(GPath("pacman/pictures/pacmanR3.bmp").transform()); | |
//etc... Loading all the images. | |
/*imageD1.loadImage(GPath("pacman/pictures/pacmanD1.bmp").transform()); | |
imageD2.loadImage(GPath("pacman/pictures/pacmanD2.bmp").transform()); | |
imageD3.loadImage(GPath("pacman/pictures/pacmanD3.bmp").transform());*/ | |
/*imageL1.loadImage(GPath("pacman/pictures/pacmanR1.bmp").transform()); | |
imageL2.loadImage(GPath("pacman/pictures/pacmanR2.bmp").transform()); | |
imageL3.loadImage(GPath("pacman/pictures/pacmanR3.bmp").transform()); | |
imageU1.loadImage(GPath("pacman/pictures/pacmanR1.bmp").transform()); | |
imageU2.loadImage(GPath("pacman/pictures/pacmanR2.bmp").transform()); | |
imageU3.loadImage(GPath("pacman/pictures/pacmanR3.bmp").transform());*/ | |
pac.attachImage(&image[d][0]); | |
pac.attachImage(&image[d][1]); | |
pac.attachImage(&image[d][2]); | |
pac.attachImage(&image[d][1]); | |
pac.attachImage(&image[d][0]); | |
/*pacD.attachImage(&imageD1); | |
pacD.attachImage(&imageD2); | |
pacD.attachImage(&imageD3); | |
pacD.attachImage(&imageD2); | |
pacD.attachImage(&imageD1);*/ | |
pac.setAnimationFrameTime(16); | |
//set geometry | |
x=y=0; | |
dx=1; | |
dy=0; | |
speed = 2;// change back to 2 afterwards | |
Scale = 100; | |
} | |
void Pacman::screen() { | |
if (pac.x>630) | |
{x=5;} | |
if (pac.x<5) | |
{x=630;} | |
if (pac.y>480) | |
{y=5;} | |
if (pac.y<0) | |
{y=479;} | |
} | |
void Pacman::draw(GWindow &g) { | |
pac.x = x; | |
pac.y = y; | |
pac.update(); | |
pac.render(); | |
//if (Keyboard.isPressed(GwinKeyNames::CURSOR_DOWN)) | |
//{ | |
///*pacD.clearImageList();*/ | |
//pacD.x = x; | |
//pacD.y = y; | |
//pac.update(); | |
//pac.render(); | |
//} | |
//g.drawImageScaled(x,y,Scale,Scale,???); | |
} | |
void Pacman::move() { | |
x += dx; | |
y += dy; | |
} | |
void Pacman::aimRight() { | |
dx = speed; | |
dy = 0; | |
pac.clearImageList(); | |
pac.attachImage(&image[1][0]); | |
pac.attachImage(&image[1][1]); | |
pac.attachImage(&image[1][2]); | |
pac.attachImage(&image[1][1]); | |
pac.attachImage(&image[1][0]); | |
} | |
void Pacman::aimLeft() { | |
dx = -speed; | |
dy = 0; | |
pac.clearImageList(); | |
pac.attachImage(&image[3][0]); | |
pac.attachImage(&image[3][1]); | |
pac.attachImage(&image[3][2]); | |
pac.attachImage(&image[3][1]); | |
pac.attachImage(&image[3][0]); | |
} | |
void Pacman::aimUp() { | |
dx = 0; | |
dy = -speed; | |
pac.clearImageList(); | |
pac.attachImage(&image[0][0]); | |
pac.attachImage(&image[0][1]); | |
pac.attachImage(&image[0][2]); | |
pac.attachImage(&image[0][1]); | |
pac.attachImage(&image[0][0]); | |
} | |
void Pacman::aimDown() { | |
dx = 0; | |
dy = speed; | |
pac.clearImageList(); | |
pac.attachImage(&image[2][0]); | |
pac.attachImage(&image[2][1]); | |
pac.attachImage(&image[2][2]); | |
pac.attachImage(&image[2][1]); | |
pac.attachImage(&image[2][0]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment