ST7735 Pong by Jonne Valola, derived work from William Johnston\'s mbed Pong for NokiaLCD / PS2 keyboard This pong uses a rotary encoder hooked to pins 21 and 22, ST7735_TFT library by me, RotaryEncoder library by Shinichiro Nakamura. All copyrights of respective owners. Use on your own risk and discretion.

Dependencies:   mbed ST7735_TFT RotaryEncoder TFT_fonts_old

paddle.cpp

Committer:
smultron1977
Date:
2011-12-12
Revision:
0:2353da390056

File content as of revision 0:2353da390056:

#include "mbed.h"
#include "paddle.h"

Paddle::Paddle() {
  int x=y=width=height=color=score=0;
  lives = 3;
}

Paddle::Paddle(int x, int y, int w, int h, int c, int l, int s)
 : x(x), y(y), width(w), height(h), color(c), lives(l), score(s) {}
 
/* 
 * Member Function move:
 * Description: Colors in the previous paddle black
 *  and moves paddle to new position.
 */
void Paddle::move(ST7735_TFT &lcd, int increment) {
  draw(lcd, true);
  y += increment;
}


/* 
 * Member Function moveCPU:
 * Description: Colors in the previous paddle black
 *  and moves paddle to new position.
 *  inc variable allows paddle to only move every
 *  other function call.
 */
void Paddle::moveCPU(ST7735_TFT &lcd, int _y) {
  static int inc = 1;
  draw(lcd, true);
  if(_y>y+height/2 && y+height<128) y += inc;
  else if(_y+5<y+height/2 && y>0) y -= inc;
  inc = (inc) ? 0 : 1;
}

void Paddle::draw(ST7735_TFT &lcd, bool isBlack) const {
  lcd.fillrect(x, y, x + width, y + height, (isBlack) ? 0x000000 : color);
}

bool Paddle::loseLife() {
  return --lives;
}

void Paddle::addPoint() {
  ++score;
}

int Paddle::size() const {
  return width*height;
}

int Paddle::getWidth() const {
  return width;
}

int Paddle::getHeight() const {
  return height;
}

int Paddle::getX() const {
  return x;
}

int Paddle::getY() const {
  return y;
}

int Paddle::getLives() const {
  return lives;
}

int Paddle::getScore() const {
  return score;
}

void Paddle::setLives(int l) {
  lives = l;
}