3 Star 1 Fork 1

DuskMist / MFC_school_DoodleJump

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
dialog_gamemain.cpp 5.01 KB
一键复制 编辑 原始数据 按行查看 历史
duskbreakmist 提交于 2022-08-31 16:58 . 合并了
#include "dialog_gamemain.h"
#include "ui_dialog_gamemain.h"
#include <QPainter>
#include <QKeyEvent>
#include <QMessageBox>
Dialog_GameMain::Dialog_GameMain(QString Nme,QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog_GameMain)
{
ui->setupUi(this);
setWindowTitle("DOOOOOOODOJUMP");
resize(gamesystem.width,gamesystem.height);
Username=Nme;//得到用户名
gamesystem.GameInit(Username);
gamesystem.Gamestart();
TimerId = startTimer(1);
key_left = 0;
key_right = 0;
key_up = 0;
key_down = 0;
key_Space = 0;
}
Dialog_GameMain::~Dialog_GameMain()
{
delete ui;
}
void Dialog_GameMain::paintEvent(QPaintEvent*){
QPainter painter(this); //使用
gamesystem.GameShow(&painter);
if(pattern_number==1){
QPainter painter1(this);
GamesystemMode1.GameShow(&painter1);
}
}
void Dialog_GameMain::setnumber(int t){
//黄启旭
pattern_number=t;
if(pattern_number==1){
resize(gamesystem.width*3,gamesystem.height);
GamesystemMode1.setLocalX(600);
GamesystemMode1.GameInit();
GamesystemMode1.Gamestart();
GamesystemMode1.setmode(2);
gamesystem.AutoHelpShow = 0;
gamesystem.setmode(2);
}
if(pattern_number==0){
//mode 1 单人 mode 2 双人//???
gamesystem.setmode(1);
}
};
void Dialog_GameMain::timerEvent(QTimerEvent* e){
//黄启旭
switch(pattern_number){
case 0://开发
if (e->timerId()==TimerId){
if(key_left){
gamesystem.playerlist[0].AddXY(-0.3,0);
}
if(key_right){
gamesystem.playerlist[0].AddXY(0.3,0);
}
if(key_up){
gamesystem.ShootBullet();
}
if(key_down){
gamesystem.AutoHelpShow = !gamesystem.AutoHelpShow;
}
if(key_Space){
gamesystem.paused = !gamesystem.paused;
}
}
break;
case 1://双人//人机
if(e->timerId()==TimerId){
if(key_left){
gamesystem.playerlist[0].AddXY(-0.3,0);
}
if(key_right){
gamesystem.playerlist[0].AddXY(0.3,0);
}
if(key_up){
gamesystem.ShootBullet();
}
if(key_down){
gamesystem.AutoHelpShow = !gamesystem.AutoHelpShow;
}
if(key_Space){
gamesystem.paused = !gamesystem.paused;
GamesystemMode1.paused = !GamesystemMode1.paused;
}
GamesystemMode1.AutoMove();
}
break;
case 2://只有机器
if (e->timerId()==TimerId){
gamesystem.AutoMove();
}
}
if(pattern_number!=1){
gamesystem.marks[0] +=1;
if(!gamesystem.paused){gamesystem.GameUpdate();}
ui->label_Mark->setText(QString::number(gamesystem.playerlist[0].ry));
ui->GameTime->setText(QString::number(gamesystem.paused));
if(gamesystem.endgame){
this->close();
this->destroyed();
}
}
else{
gamesystem.marks[0] +=1;
if(!gamesystem.paused){gamesystem.GameUpdate();}
GamesystemMode1.marks[0] +=1;
if(!GamesystemMode1.paused){GamesystemMode1.GameUpdate();}
QString qstr="人类玩家: ";
qstr=QString::number(gamesystem.LocalH);
QString qstr1="机器玩家: ";
qstr1=QString::number(GamesystemMode1.LocalH);
ui->label_Mark->setText(qstr);
ui->GameTime->setText(qstr1);
//ui->GameTime->setText(QString::number(gamesystem.paused));
//ui->label_Mark->setText(QString::number(GamesystemMode1.playerlist[0].ry));
if(gamesystem.LocalH-GamesystemMode1.LocalH>=200)
GamesystemMode1.endgame=1;
else if(GamesystemMode1.LocalH>10000)gamesystem.endgame=1;
if(GamesystemMode1.endgame&&!gamesystem.endgame){
QMessageBox::information(0,"","人类胜利");
this->close();
this->destroyed();
}
if(gamesystem.endgame&&!GamesystemMode1.endgame){
QMessageBox::information(0,"","机器人胜利");
this->close();
this->destroyed();
}
}
update();
}
//----
void Dialog_GameMain::keyPressEvent(QKeyEvent *event){
if(event->key()==Qt::Key_D){
key_right=true;
}
if(event->key()==Qt::Key_A){
key_left=true;
}
if(event->key()==Qt::Key_W){
key_up=true;
}
if(event->key()==Qt::Key_S){
key_down=true;
}
if(event->key()==Qt::Key_Space){
key_Space=true;
}
}
void Dialog_GameMain::keyReleaseEvent(QKeyEvent* event){
if(event->key()==Qt::Key_D){
key_right=false;
}
if(event->key()==Qt::Key_A){
key_left=false;
}
if(event->key()==Qt::Key_W){
key_up=false;
}
if(event->key()==Qt::Key_S){
key_down=false;
}
if(event->key()==Qt::Key_Space){
key_Space=false;
}
}
C++
1
https://gitee.com/duskmist/mfc_school_-doodle-jump.git
git@gitee.com:duskmist/mfc_school_-doodle-jump.git
duskmist
mfc_school_-doodle-jump
MFC_school_DoodleJump
master

搜索帮助