游戏核心代码:
void myWidget::timerEvent(QTimerEvent *e){//定时器
if(e->timerId() == timerId && gamePause){
if(direction == s_right){
goRight();
}else if(direction == s_up){
goUp();
}else if(direction == s_down){
goDown();
}else if(direction == s_left){
goLeft();
}
//qDebug()<
if(isEated){
strScore = QString::number(score);
ui->label->setText(strScore);
}
update();
if(crashed){
player->stop();
player_gg->play();
Sleep(1000);
MessageBox(0, TEXT("不要灰心!继续游戏??"), TEXT("Sorry,defeat!!"), 0);//游戏结束时
gamePause = !gamePause;
init();
strScore = QString::number(score);
ui->label->setText(strScore);
}
}
}
void myWidget::keyPressEvent(QKeyEvent *e){//键盘事件监听
// qDebug()<key();
if(gameStart){//游戏开始时才可以手动
if(e->key() == Qt::Key_W){
if(direction == s_down) return;//不做处理
direction = s_up;
//if(e->isAutoRepeat())//重复按下再快跑会有迟钝效果。。
goUp();
if(isEated)
createApple();//随机产生苹果位置
}else if(e->key() == Qt::Key_S){
if(direction == s_up) return;//不做处理
direction = s_down;
goDown();
if(isEated)
createApple();//随机产生苹果位置
}else if(e->key() == Qt::Key_A){
if(direction == s_right) return;//不做处理
direction = s_left;
goLeft();
if(isEated)
createApple();//随机产