示例#1
0
void TrackThread::run()
{
	VideoCapture caputure;
//	string WindowNameOutput="window";
	Mat frame;
	Mat output;
	//emit Mess(QString("test"),QString("camera open filed"));
	//return ;
	caputure.open(0);
	if(!caputure.isOpened())
	{
		emit Messquit(QString("warning"),QString("you don't have a camera, please connect one"));
		//md->mess("warning","camera open failed");
		return;
	}

//	namedWindow(WindowNameOutput);
//	cvWaitKey(1000);
	Sleep(1000);
	while(nRunFlag){
		if(!caputure.read(frame))
		{
			emit Messquit(QString("warning"),QString("please connect camera"));
			//md->mess("warning","camera read failed");
			break;
		}
		flip(frame,frame,1);
		int re=process (frame,output);

		//控制
		//if(md->ready){
			if(re==1){
				emit moveup();
			}
				//md->moveUp();
			else if(re==2){
				emit movedown();
			}
				//md->moveDown();
			else if(re==3){
				emit moveleft();
			}
				//md->moveLeft();
			else if (re==4){
				emit moveright();
			}
				//md->moveRight();
		//}
	//	imshow(WindowNameOutput,output);
	//	显示
		cvtColor(output, output, CV_BGR2RGB);
		QImage qq((unsigned char*)output.data,output.cols, output.rows,output.step,  QImage::Format_RGB888);
	//	md->setimg(QPixmap::fromImage(qq));
		emit setImg(QPixmap::fromImage(qq));
	//	if(md->exitt)
	//		break;
		Sleep(50);
//		cvWaitKey(1000);
	}
	caputure.release();
//	destroyWindow (WindowNameOutput);
}
示例#2
0
void Water::Doubpipebehavior(SDL_Renderer* ren,vector<DoublePipe> a)
{
    int num=whereiamDoubpipe(a);

    if(right==true && a[num].getuse()==2)
    {
        if((Voda.x+Voda.w<a[num].HorPart2().x+a[num].HorPart2().w) &&(Voda.y+Voda.h!=a[num].VertPart1().y+a[num].VertPart1().h) )
        {

            moveright();
            default_create(ren,"start.jpg");
        }
        else if((Voda.x+Voda.w==a[num].HorPart2().x+a[num].HorPart2().w) &&(Voda.y+Voda.h!=a[num].VertPart1().y+a[num].VertPart1().h))
        {

            Voda.y+=1;
            default_create(ren,"start.jpg");
        }

        if(Voda.y+Voda.h==a[num].VertPart1().y+a[num].VertPart1().h)
        {
            up=true;
            down=false;
            right=false;
            left=false;
        }

    }
    /* ================================================== */

    else if(right==true && a[num].getuse()==3)
    {
        if((Voda.x+Voda.w<a[num].HorPart2().x+a[num].HorPart2().w) &&(Voda.y!=a[num].VertPart2().y))
        {

            moveright();
            default_create(ren,"start.jpg");
        }
        else if((Voda.x+Voda.w==a[num].HorPart2().x+a[num].HorPart2().w) &&(Voda.y!=a[num].VertPart2().y))
        {
            ;
            Voda.y-=1;
            default_create(ren,"start.jpg");
        }

        if(Voda.y==a[num].VertPart2().y)
        {
            up=false;
            down=true;
            right=false;
            left=false;
        }

    }

    /* ================================================== */
    else if(left==true && a[num].getuse()==1)
    {
        if(Voda.x>a[num].HorPart1().x)
        {

            moveleft();
            default_create(ren,"start.jpg");
        }
        else if(Voda.x==a[num].HorPart1().x)
        {

            default_create(ren,"start.jpg");
            Voda.y+=1;
        }
        if(Voda.y+Voda.h==a[num].VertPart1().y+a[num].VertPart1().h)
        {
            up=true;
            down=false;
            right=false;
            left=false;
        }

    }

    /* ================================================== */
    else if(left==true && a[num].getuse()==4)
    {
        if(Voda.x>a[num].HorPart1().x)
        {

            moveleft();
            default_create(ren,"start.jpg");
        }
        else if(Voda.x==a[num].HorPart1().x)
        {

            default_create(ren,"start.jpg");
            Voda.y-=1;
        }
        if(Voda.y==a[num].VertPart2().y)
        {
            up=false;
            down=true;
            right=false;
            left=false;
        }

    }

    /* ================================================== */
    else if(up==true && a[num].getuse()==3)
    {
        if((Voda.y+Voda.h<a[num].VertPart2().y+a[num].VertPart2().h) && (Voda.x!=a[num].HorPart2().x) )
        {

            moveup();
            default_create(ren,"start.jpg");
        }
        else if((Voda.y+Voda.h==a[num].VertPart2().y+a[num].VertPart2().h) && (Voda.x!=a[num].HorPart2().x))
        {

            default_create(ren,"start.jpg");
            Voda.x-=1;
        }
        if(Voda.x==a[num].HorPart2().x)
        {
            right=false;
            left=true;
            down=false;
            up=false;
        }

    }

    /* ================================================== */
    else if(up==true && a[num].getuse()==4)
    {
        if((Voda.y+Voda.h<a[num].VertPart2().y+a[num].VertPart2().h) )
        {

            moveup();
            default_create(ren,"start.jpg");
        }
        else if((Voda.y+Voda.h==a[num].VertPart2().y+a[num].VertPart2().h))
        {
            default_create(ren,"start.jpg");
            Voda.x+=1;
        }
        if(Voda.x+Voda.w==a[num].HorPart1().x+a[num].HorPart1().w)
        {
            right=true;
            left=false;
            down=false;
            up=false;
        }

    }
    else if(down==true && a[num].getuse()==1)
    {
        if(Voda.y>a[num].VertPart1().y)
        {

            movedown();
            default_create(ren,"start.jpg");
        }
        else if(Voda.y==a[num].VertPart1().y)
        {

            Voda.x+=1;
            default_create(ren,"start.jpg");
        }
        if(Voda.x+Voda.w==a[num].HorPart1().x+a[num].HorPart1().w)
        {
            right=true;
            left=false;
            up=false;
            down=false;
        }

    }
    /* ================================================== */
    else if(down==true && a[num].getuse()==2)
    {
        if(Voda.y>a[num].VertPart1().y)
        {

            movedown();
            default_create(ren,"start.jpg");
        }
        else if(Voda.y==a[num].VertPart1().y)
        {

            Voda.x-=1;
            default_create(ren,"start.jpg");
        }
        if(Voda.x==a[num].HorPart2().x)
        {
            right=false;
            left=true;
            up=false;
            down=false;
        }

    }

    /* ================================================== */
}
示例#3
0
void MainWindow::createActions()    /*菜单选项*/
{
    /*文件菜单*/
    openAction = new QAction(tr("打开"),this);
    openAction->setStatusTip(tr("打开新文件"));
    connect(openAction,SIGNAL(triggered()),this,SLOT(openFile()));

    importAction = new QAction(tr("导入"),this);
    importAction->setStatusTip(tr("导入数据"));
    connect(importAction,SIGNAL(triggered()),this,SLOT(importFile()));
    importAction->setDisabled(true);

    sortAction = new QAction(tr("分类数据"),this);
    sortAction->setStatusTip(tr("处理分类数据"));
    connect(sortAction,SIGNAL(triggered()),this,SLOT(sortFile()));
    sortAction->setDisabled(true);

    exitAction = new QAction(tr("退出"),this);
    exitAction->setStatusTip(tr("退出程序"));
    connect(exitAction,SIGNAL(triggered()),this,SLOT(close()));

    /*导入菜单*/
    ebdicAction = new QAction(tr("显示EBDIC码"),this);
    ebdicAction->setStatusTip(tr("显示EBDIC码"));
    connect(ebdicAction,SIGNAL(triggered()),this,SLOT(loadEBDIC()));
    ebdicAction->setDisabled(true);

    reelAction = new QAction(tr("显示卷头"),this);
    reelAction->setStatusTip(tr("显示卷头信息"));
    connect(reelAction,SIGNAL(triggered()),this,SLOT(loadReel()));
    reelAction->setDisabled(true);

    traceAction = new QAction(tr("显示道头"),this);
    traceAction->setStatusTip(tr("显示选定位置道头信息"));
    connect(traceAction,SIGNAL(triggered()),this,SLOT(loadTrace()));
    traceAction->setDisabled(true);

    dataAction = new QAction(tr("地震数据"),this);
    dataAction->setStatusTip(tr("显示选定位置的地震记录"));
    connect(dataAction,SIGNAL(triggered()),this,SLOT(loadData()));
    dataAction->setDisabled(true);

    /*画图菜单*/
    waveAction = new QAction(tr("波形显示"),this);
    waveAction->setStatusTip(tr("波形显示剖面"));
    connect(waveAction,SIGNAL(triggered()),this,SLOT(drawWave()));
    waveAction->setDisabled(true);


    grayAction = new QAction(tr("灰度显示"),this);
    grayAction->setStatusTip(tr("显示灰度图像"));
    connect(grayAction,SIGNAL(triggered()),this,SLOT(drawGray()));
    grayAction->setDisabled(true);

    colorAction = new QAction(tr("彩色显示"),this);
    colorAction->setStatusTip(tr("显示彩色图像"));
    connect(colorAction,SIGNAL(triggered()),this,SLOT(drawColor()));
    colorAction->setDisabled(true);

    //操作openGL图像
    bigAction = new QAction(tr("放大"),this);
    bigAction->setStatusTip(tr("放大图像"));
    connect(bigAction,SIGNAL(triggered()),this,SLOT(bigger()));
    bigAction->setDisabled(true);

    littleAction = new QAction(tr("缩小"),this);
    littleAction->setStatusTip(tr("缩小图像"));
    connect(littleAction,SIGNAL(triggered()),this,SLOT(little()));
    littleAction->setDisabled(true);

    moveleftAction = new QAction(tr("左移"),this);
    moveleftAction->setStatusTip(tr("左移图像"));
    connect(moveleftAction,SIGNAL(triggered()),this,SLOT(moveleft()));
    moveleftAction->setDisabled(true);

    moverightAction = new QAction(tr("右移"),this);
    moverightAction->setStatusTip(tr("图像右移"));
    connect(moverightAction,SIGNAL(triggered()),this,SLOT(moveright()));
    moverightAction->setDisabled(true);

    moveupAction = new QAction(tr("上移"),this);
    moveupAction->setStatusTip(tr("上移图像"));
    connect(moveupAction,SIGNAL(triggered()),this,SLOT(moveup()));
    moveupAction->setDisabled(true);

    movedownAction = new QAction(tr("下移"),this);
    movedownAction->setStatusTip(tr("下移图像"));
    connect(movedownAction,SIGNAL(triggered()),this,SLOT(movedown()));
    movedownAction->setDisabled(true);

    moveMouseAction = new QAction(tr("移动"),this);
    moveMouseAction->setStatusTip(tr("使用鼠标移动图像"));
    connect(moveMouseAction,SIGNAL(triggered()),this,SLOT(moveMouse()));
    moveMouseAction->setDisabled(true);

    rotateMouseAction = new QAction(tr("旋转"),this);
    rotateMouseAction->setStatusTip(tr("旋转图像"));
    connect(rotateMouseAction,SIGNAL(triggered()),this,SLOT(rotateMouse()));
    rotateMouseAction->setDisabled(true);

    nextSliceAction = new QAction(tr("下一条剖面"),this);
    nextSliceAction->setStatusTip(tr("选择下一条剖面"));
    connect(nextSliceAction,SIGNAL(triggered()),this,SLOT(nextSlice()));
    nextSliceAction->setDisabled(true);

    preSliceAction = new QAction(tr("上一条剖面"),this);
    preSliceAction->setStatusTip(tr("选择上一条剖面"));
    connect(preSliceAction,SIGNAL(triggered()),this,SLOT(preSlice()));
    preSliceAction->setDisabled(true);

    drawGridAction = new QAction(tr("关闭网格"),this);
    drawGridAction->setStatusTip(tr("打开/关闭剖面图像上的网格"));
    connect(drawGridAction,SIGNAL(triggered()),this,SLOT(drawGrid()));
    drawGridAction->setDisabled(true);
}
示例#4
0
void left(struct Block**grid){
    moveleft(grid[0]);
    moveleft(grid[4]);
    moveleft(grid[8]);
    moveleft(grid[12]);
}
示例#5
0
boolean putscrap (tyscraptype scraptype, Handle hscrap) {
	
	/*
	return true if something was put on the scrap, false 
	otherwise.

	5.0a16 dmb: handle NULL scrap for delayed rendering

	5.0b13 dmb: report errors (win)
	*/

	boolean fl;

	#ifdef MACVERSION
		//Code change by Timothy Paustian Sunday, June 25, 2000 11:28:22 AM
		//New scrap code. We don't need flavorFlags I think
		#if TARGET_API_MAC_CARBON == 1
		ScrapRef			theScrap;
		OSStatus			status;
	    ScrapFlavorType 	flavorType = (ScrapFlavorType) scraptype;
	    ScrapFlavorFlags 	flavorFlags = kScrapFlavorMaskNone;
		Size				flavorSize = GetHandleSize(hscrap);
		
		status = GetCurrentScrap(&theScrap);
		if(status != noErr)
			return false;
		HLock(hscrap);
		fl = (PutScrapFlavor (theScrap, flavorType, flavorFlags, flavorSize, *hscrap) == noErr);
    	HUnlock(hscrap);
    	return fl;
    	
		#else
		
		HLock (hscrap);
		
		fl = PutScrap (GetHandleSize (hscrap), scraptype, *hscrap) == noErr;
		
		HUnlock (hscrap);

		return (fl);
		#endif
		
	#endif

	#ifdef WIN95VERSION
		long ctbytes;
		long allocctbytes;
		Handle hdata;
		char *pdata;
		UINT wintype;
		
		wintype = shell2winscraptype (scraptype);

		if (wintype == 0) {
	
			oserror (DV_E_CLIPFORMAT);

			return (false);
			}
		
		if (hscrap == NULL)
			hdata = NULL;
		
		else {
			ctbytes = gethandlesize (hscrap);

			allocctbytes = ctbytes;

			if (scraptype == textscraptype)
				++allocctbytes;							//Allow for NULL termination

			hdata = GlobalAlloc (GMEM_MOVEABLE | GMEM_DDESHARE, allocctbytes);
			pdata = GlobalLock (hdata);
			
			if (pdata == NULL) {

				GlobalFree (hdata);
				
				return (false);
				}

			moveleft (*hscrap, pdata, ctbytes);
			
			if (scraptype == textscraptype)
				*(pdata + ctbytes) = 0;			//NULL terminate TEXT scraps

			//Window handles are not exact size - NULL fill remaining space for safety
			if ((GlobalSize (hdata) - allocctbytes) > 0)
				clearbytes (pdata + allocctbytes, GlobalSize (hdata) - allocctbytes);

			GlobalUnlock (hdata);
			}
		
		SetLastError (0);
		
		fl = (SetClipboardData (wintype, hdata) != NULL);
		
		if (!fl)
			fl = !oserror (GetLastError ());
		
		return (fl);
	#endif
	} /*putscrap*/
示例#6
0
boolean unmergehandles (Handle hmerged, Handle *hfirst, Handle *hsecond) {

    /*
    split up a handle created by mergehandle.

    3/12/91 dmb: rewrote so that we own hmerged; caller no longer diposes it.
    this allows us to reuse the handle to greatly reduce memory requirements.
    we could further optimize by reusing hmerged for the larger handle instead
    of always hsecond.

    also, avoid locking handles when we're trying to allocate potentially
    large chunks of memory.

    2.1b3 dmb: newly-created handle is always ok as temporary memory
    */

    register Handle h1 = nil, h2 = nil;
    register Handle h = hmerged;
    long ix;
    long sizefirsthandle, sizesecondhandle;

    *hfirst = *hsecond = nil; /*default return values*/

    moveleft (*h, &sizefirsthandle, sizeof (long));

#ifdef PACKFLIPPED
    longswap (sizefirsthandle);
#endif

    ix = sizeof (long);

    if (sizefirsthandle == 0)
        h1 = nil;

    else {
        h1 = getnewhandle (sizefirsthandle, true);

        if (h1 == nil)
            goto error;

        moveleft (*h + ix, *h1, sizefirsthandle);
    }

    ix += sizefirsthandle;

    sizesecondhandle = gethandlesize (h) - sizefirsthandle - sizeof (long);

    if (sizesecondhandle == 0) {

        h2 = nil;

        disposehandle (h);
    }
    else {

        h2 = h; /*second handle can safely re-use merged handle*/

        moveleft (*h2 + ix, *h2, sizesecondhandle);

        sethandlesize (h2, sizesecondhandle);
    }

    *hfirst = h1; /*return handles to caller*/

    *hsecond = h2;

    return (true);

error:

    disposehandle (h);

    disposehandle (h1);

    disposehandle (h2);

    memoryerror ();

    return (false);
} /*unmergehandles*/
示例#7
0
/** Default constructor */
MainWindow::MainWindow() : QWidget()
{
	/** constructor() that has in input file for scores */
	ifstream fin;
	fin.open("scores.txt");
	if(fin.fail())
	{
		cout << "Could not find the scores file" << endl;
	}
	else
	{
	  string temp;
	  int temp2;
	  getline(fin,temp,'|');
	  fin >> temp2;
		while(fin.good())
		{
			scorenames.push_back(temp);
			scores.push_back(temp2);
			getline(fin,temp,'|');
			fin >> temp2;
		}
	}
	  
	/** Set the Pixmaps */
	ez=new QPixmap("ezreal.png");
		*ez=ez->scaled(75,75,Qt::KeepAspectRatioByExpanding);
	melee=new QPixmap("meleeminion.png");
		*melee=melee->scaled(50,50,Qt::KeepAspectRatioByExpanding);
	caster=new QPixmap("casterminion.png");
		*caster=caster->scaled(45,45,Qt::KeepAspectRatioByExpanding);
	siege=new QPixmap("siegeminion.png");
		*siege=siege->scaled(65,65,Qt::KeepAspectRatioByExpanding);
	basic=new QPixmap("basicattack.gif");
		*basic=basic->scaled(10,10,Qt::KeepAspectRatioByExpanding);
	mystic=new QPixmap("basicattack.gif");
		*mystic=mystic->scaled(30,30,Qt::KeepAspectRatioByExpanding);
	trueshot=new QPixmap("trueshot.png");
		*trueshot=trueshot->scaled(75,75,Qt::KeepAspectRatioByExpanding);
	heal=new QPixmap("heal.png");
		*heal=heal->scaled(50,50,Qt::KeepAspectRatioByExpanding);
	clarity=new QPixmap("clarity.png");
		*clarity=clarity->scaled(50,50,Qt::KeepAspectRatioByExpanding);
	ignite=new QPixmap("ignite.png");
		*ignite=ignite->scaled(50,50,Qt::KeepAspectRatioByExpanding);
	energy=new QPixmap("energybolt.gif");
		*energy=energy->scaled(50,50,Qt::KeepAspectRatioByExpanding);
	cannon=new QPixmap("cannonshot.png");
		*cannon=cannon->scaled(55,55,Qt::KeepAspectRatioByExpanding);
	/** color is the default color set for spacers and background of widgets*/
	color.setRgb(240,240,240,255);
	/** MainWidget which holds everything */
	mainwidget= new QWidget;
	mainwidget->setFixedSize(1200,800);
	/** Main Layout for MainWindow */
	mainLayout = new QVBoxLayout;
	mainwidget->setLayout(mainLayout);
	  /** TITLE above row1*/
	  row0 = new QHBoxLayout;
	  	/** IconObject used to display QPixmap */
	    	hold_spacer0 = new IconObject;
	  	/** Used to hold a space */
	  	spacer0 = new QPixmap(100,64);
	  	spacer0->fill(color);
	  	/** IconObject used to display QPixmap */
	    	hold_title = new IconObject;
	    	/** Ability display icon */
	  	title = new QPixmap("title.png");
	  	/** IconObject used to display QPixmap */
	    	hold_spacer01 = new IconObject;
	  	/** Used to hold a space */
	  	spacer01 = new QPixmap(100,64);
	  	spacer01->fill(color);
	  	// set pixmaps
	  	hold_spacer0->setPixmap(*spacer0);
	  	hold_title->setPixmap(title->scaled(700,40,Qt::KeepAspectRatioByExpanding));
	  	hold_spacer0->setPixmap(*spacer01);
	  	//add to layout row0
	  	row0->addWidget(hold_spacer0);
	  	row0->addWidget(hold_title);
	  	row0->addWidget(hold_spacer01);
	  	mainLayout->addLayout(row0);
	  /** Horizontal box for row 1*/
	  row1= new QHBoxLayout;
	  	/** Button which initiates/restarts game*/
		start= new QPushButton("Start");
		/** Button which pauses/continues game*/
		pause = new QPushButton("Pause");
		/** quits the game*/
		quit = new QPushButton("Quit");
		/** Score display*/
		name = new QTextEdit("Name");
		name->setMaximumHeight(30);
		name->setMaximumWidth(200);
		/** level display*/
		level = new QLabel("LEVEL: 00");
		/** score display*/
		score = new QLabel("SCORE: 00");
	    row1->addWidget(start);
	    row1->addWidget(pause);
	    row1->addWidget(quit);
	    row1->addWidget(name);
	    row1->addWidget(level);
	    row1->addWidget(score);
	    mainLayout->addLayout(row1);
	  /** Horizontal box for row 2*/
	  row2 = new QHBoxLayout;
	  	/** Scene which holds monsters, player and powerups*/
	  	scene = new QGraphicsScene;
	  	/** View which holds gameplay*/
	  	view = new GameWindow(scene);
	    row2->addWidget(view);
	    mainLayout->addLayout(row2);
	  /** Horizontal box for row 3*/
	  row3 = new QHBoxLayout;
	    //left
	    	/** IconObject used to display QPixmap */
	    	hold_basicattackicon = new IconObject;
	    	/** Ability display icon */
	  	basicattackicon = new QPixmap("basicattack.gif");
	  	/** IconObject used to display QPixmap */
	    	hold_mysticshoticon = new IconObject;
	  	/** Ability display icon */
	  	mysticshoticon = new QPixmap("basicattack.gif");
	  	//mysticshoticon->scaledToHeight(64,Qt::FastTransformation);
	  	/** IconObject used to display QPixmap */
	    	hold_trueshoticon = new IconObject;
	  	/** Ability display icon */
	  	trueshoticon = new QPixmap("trueshot.png");
	  	/** IconObject used to display QPixmap */
	    	hold_spacer1 = new IconObject;
	  	/** Used to hold a space */
	  	spacer1 = new QPixmap(400,64);
	  	spacer1->fill(color);
	    //midleft
	    	/** IconObject used to display QPixmap */
	    	hold_heart = new IconObject;
	    	/** Heart Icon */
	    	heart = new QPixmap("heart.gif");
	    	/** Health display */
	    	health = new QLabel("200");
	    	health->setMaximumHeight(25);
	    	/** IconObject used to display QPixmap */
	    	hold_spacer2 = new IconObject;
	    	/** Used to hold a space */
	  	spacer2 = new QPixmap(64,64);
	  	spacer2->fill(color);
	    //midright
	    	/** IconObject used to display QPixmap */
	    	hold_potion = new IconObject;
	    	/** Mana Icon */
	    	potion = new QPixmap("mana.gif");
	    	/** Mana display */
	    	mana= new QLabel("50");
	    	mana->setMaximumHeight(25);
	    	
	    /*Add the Pixmaps to the IconObjects*/
	    hold_basicattackicon->setPixmap(basicattackicon->scaledToHeight(10));
	    hold_mysticshoticon->setPixmap(mysticshoticon->scaledToHeight(20));
	    hold_trueshoticon->setPixmap(trueshoticon->scaled(40,60,Qt::KeepAspectRatioByExpanding));
	    hold_spacer1->setPixmap(*spacer1);
	    hold_heart->setPixmap(*heart);
	    hold_spacer2->setPixmap(*spacer2);
	    hold_potion->setPixmap(*potion);
	    /* Add IconObjects to row3 */
	    row3->addWidget(hold_basicattackicon);
	    row3->addWidget(hold_mysticshoticon);
	    row3->addWidget(hold_trueshoticon);
	    row3->addWidget(hold_spacer1);
	    row3->addWidget(hold_heart);
	    row3->addWidget(health);
	    row3->addWidget(hold_spacer2);
	    row3->addWidget(hold_potion);
	    row3->addWidget(mana);
	    /* Add layout to main widget*/
	    mainLayout->addLayout(row3);
	    
	// set player
	  //objects.push_back(
	//set bool variables
	trueshotfiring = false;
	inGame = false;
	gamePaused = false;
	playerAlive = false;
	up = false;
	down = false;
	left = false;
	right = false;
	grabbedignite=false;
	lostgame=false;
	//set counters
	/** Level identifies which level the game is at */
	levelff=1;
	/** Leftclickcounter determines how many times left click is pressed */
	leftclickcounter=0;
	/** Leftclickholdcounter determines how long left click is pressed */
	leftclickholdcounter=0;
	/** Spawn counter for a meleeminoin */
	spawnmelee=0;
	/** Spawn counter for a Siegeminion*/
	spawnsiege=0;	
	/** Spawn counter for a Casterminion*/
	spawncaster=0;
	/** Ez can not be hurt immediately at next clock 
	  *giving the player time to move out of the way*/
	ezhurt=0;
	/** Points scored*/
	points=0;
	/** Icon spawning at 200*/
	iconspawn=0;
	
	// set timer
	timer = new QTimer(this);// timer->start(val) later on in show()
	//connections
	connect(start,SIGNAL(clicked()),this,SLOT(clickedStart()));
	connect(pause,SIGNAL(clicked()),this,SLOT(clickedPause()));
	connect(view,SIGNAL(leftButtonClicked()),this,SLOT(leftClick()));
	connect(view,SIGNAL(rightButtonClicked()),this,SLOT(rightClick()));
	connect(view,SIGNAL(leftButtonHoldStart()),this,SLOT(leftHoldstart()));
	connect(view,SIGNAL(leftButtonHoldCancel()),this,SLOT(leftHoldcancel()));
	connect(view,SIGNAL(uparrow()),this,SLOT(moveup()));
	connect(view,SIGNAL(downarrow()),this,SLOT(movedown()));
	connect(view,SIGNAL(leftarrow()),this,SLOT(moveleft()));
	connect(view,SIGNAL(rightarrow()),this,SLOT(moveright()));
	connect(timer,SIGNAL(timeout()),this,SLOT(handleTimer()));
	connect(quit,SIGNAL(clicked()),this,SLOT(clickedQuit()));
}
示例#8
0
	short __assert (char *expr, char *file, short line) {
	
		/*
		On OS X, DebugStr output gets automatically rerouted to stderr
		which in turn gets logged to console.log, viewable via Console.app.
		
		2003-05-26 AR: Include date/time, app name, and app version.
		*/
		
		static boolean flnorentry = false;
		short day, month, year, hour, minute, second;
		tyfilespec myfspec;
		bigstring bs, bslogstamp, bsline, bsfile, bsmessage;
		
		if (flnorentry)
			return (0);
		
		flnorentry = true;
		
		/*get timestamp*/
		
		secondstodatetime (timenow (), &day, &month, &year, &hour, &minute, &second);
		
		numbertostring ((long) year, bs);
		
		pushstring (bs, bslogstamp);
		
		pushchar ('-', bslogstamp);
		
		numbertostring ((long) month, bs);
		
		padwithzeros (bs, 2);
		
		pushstring (bs, bslogstamp);
		
		pushchar ('-', bslogstamp);
		
		numbertostring ((long) day, bs);
		
		padwithzeros (bs, 2);
		
		pushstring (bs, bslogstamp);
		
		pushchar (' ', bslogstamp);
		
		numbertostring ((long) hour, bs);
		
		padwithzeros (bs, 2);
		
		pushstring (bs, bslogstamp);
		
		pushchar (':', bslogstamp);
		
		numbertostring ((long) minute, bs);
		
		padwithzeros (bs, 2);
		
		pushstring (bs, bslogstamp);
		
		pushchar (':', bslogstamp);
		
		numbertostring ((long) second, bs);
		
		padwithzeros (bs, 2);
		
		pushstring (bs, bslogstamp);
		
		pushchar (' ', bslogstamp);

 		/*get filespec for app*/
 
		getapplicationfilespec (nil, &myfspec);
		
		pushstring (fsname (&myfspec), bslogstamp);
		
		pushchar (' ', bslogstamp);
		
		/*get version of app*/
		
		filegetprogramversion (bs);
		
		pushchar ('(', bslogstamp);
		
		pushstring (bs, bslogstamp);
		
		pushchar (')', bslogstamp);
		
		/*get file name*/
		
		moveleft (file, bsfile, (long) lenbigstring);
		
		convertcstring (bsfile);
		
		/*get line number*/
		
		numbertostring ((long) line, bsline);
		
		/*ouput message*/
		
		parsedialogstring (
				"\p\r^0: Assertion failed in file ^1, at line ^2.\r",
				bslogstamp, bsfile, bsline, nil,
				bsmessage);
				
		DebugStr (bsmessage);
		
		/*send message to stderr*/
		
		flnorentry = false;

		return (0);
	} /*__assert*/
示例#9
0
boolean mergehandles (Handle h1, Handle h2, Handle *hmerged) {

    /*
    create a new handle which is the concatenation of two handles.  the first
    four bytes of the new handle store the size of the first handle so the merged
    handle can be easily unpacked.

    6/8/90 DW: modified so it could deal with nil handles.

    10/7/91 dmb: try to merge result into the larger of the original handles, so
    that our memory overhead can be almost cut in half.

    2.1b3 dmb: in the unusual case the we allocated a new handle, go ahead
    and use temporary memory if available. this might not always be ideal, but
    more often than not it will be best -- we're likely Saving, and tossing
    the merged handle soon.
    */

    register Handle h;
    long sizefirsthandle;
    long sizesecondhandle;
    long sizemergedhandle;
    long storesizefirsthandle;
    register ptrbyte p;

    *hmerged = nil; /*default return value*/

    sizefirsthandle = gethandlesize (h1);
    storesizefirsthandle = conditionallongswap (sizefirsthandle);

    sizesecondhandle = gethandlesize (h2);

    sizemergedhandle = sizeof (long) + sizefirsthandle + sizesecondhandle;

    if (sizefirsthandle > sizesecondhandle) { /*try using h1 for result*/

        if (resizehandle (h1, sizemergedhandle)) {

            p = (ptrbyte) *h1;

            moveright (p, p + sizeof (long), sizefirsthandle);

            moveleft (&storesizefirsthandle, p, sizeof (long));

            if (h2 != nil)
                moveleft (*h2, p + sizeof (long) + sizefirsthandle, sizesecondhandle);

            *hmerged = h1;

            disposehandle (h2);

            return (true);
        }
    }

    else if (h2 != nil) { /*try using h2 for result*/

        if (resizehandle (h2, sizemergedhandle)) {

            p = (ptrbyte) *h2;

            moveright (p, p + sizeof (long) + sizefirsthandle, sizesecondhandle);

            moveleft (&storesizefirsthandle, p, sizeof (long));

            if (h1 != nil)
                moveleft (*h1, p + sizeof (long), sizefirsthandle);

            *hmerged = h2;

            disposehandle (h1);

            return (true);
        }
    }

    /*resizing didn't work; try it the old way, using a newly-allocated handle*/

    h = getnewhandle (sizemergedhandle, true);

    if (h == nil) {

        memoryerror ();

        disposehandle (h1);

        disposehandle (h2);

        return (false);
    }

    p = (ptrbyte) *h;

    moveleft (&storesizefirsthandle, p, sizeof (long));

    p += sizeof (long);

    if (h1 != nil)
        moveleft (*h1, p, sizefirsthandle);

    if (h2 != nil)
        moveleft (*h2, p + sizefirsthandle, sizesecondhandle);

    *hmerged = h;

    disposehandle (h1);

    disposehandle (h2);

    return (true);
} /*mergehandles*/
示例#10
0
static ostypetostring (OSType type, bigstring bs) {
	
	bs [0] = 4;
	
	moveleft (&type, &bs [1], 4);
	} /*ostypetostring*/
示例#11
0
void loadconfigresource (short configresnum, tyconfigrecord *cr) {

    /*
    2.1b5 dmb: release the config resource when done with it

    2006-04-16 aradke: swap byte-order on Intel Macs
    */

    register Handle h;
    bigstring bs;

    h = getresourcehandle (configresourcetype, configresnum);

    if (h != nil) {

        moveleft (*h, cr, sizeof (tyconfigrecord));

        releaseresourcehandle (h);

        reztomemshort ((*cr).flhorizscroll);

        reztomemshort ((*cr).flvertscroll);

        reztomemshort ((*cr).flwindowfloats);

        reztomemshort ((*cr).flmessagearea);

        reztomemshort ((*cr).flinsetcontentrect);

        reztomemshort ((*cr).flnewonlaunch);

        reztomemshort ((*cr).flopenresfile);

        reztomemshort ((*cr).fldialog);

        reztomemshort ((*cr).flgrowable);

        reztomemshort ((*cr).flcreateonnew);

        reztomemshort ((*cr).flwindoidscrollbars);

        reztomemshort ((*cr).flstoredindatabase);

        reztomemshort ((*cr).flparentwindowhandlessave);

        reztomemshort ((*cr).fleraseonresize);

        reztomemshort ((*cr).fldontconsumefrontclicks);

        reztomemshort ((*cr).flcolorwindow);

        reztomemshort ((*cr).messageareafraction);

        reztomemlong ((*cr).filecreator);	/* OSType */

        reztomemlong ((*cr).filetype);	/* OSType */

        reztomemrect ((*cr).rmin);

        reztomemshort ((*cr).templateresnum);

        reztomemshort ((*cr).defaultfont);

        reztomemshort ((*cr).defaultsize);

        reztomemshort ((*cr).defaultstyle);

        reztomemshort ((*cr).idbuttonstringlist);

        reztomemrect ((*cr).defaultwindowrect);

        getstringlist (fontnamelistnumber, (*cr).defaultfont, bs);

        fontgetnumber (bs, &(*cr).defaultfont);

        centerrectondesktop (&(*cr).defaultwindowrect);
    }
    else
        initconfigrecord (cr);
} /*loadconfigresource*/
示例#12
0
文件: input.c 项目: gsrr/Python
int processkey_ingame(int key, int flags)
{
	static int discard_count;
	struct player *plr;
	int i = TWOPLAYER_MODE && key & PLAYER_2;
	int safe;
	switch (key & 0x7F) {
	case ESC:
	case '\b':
		game->state = 0;
		return -2;
	case 'q':
		exit(0);
	case STARTBTN:
	case 'p':
		if (flags & NO_PAUSE || !game_running || TWOPLAYER_MODE)
			break;
		i = pausegame();
		textgfx_flags &= ~LOST_FOCUS;
		return i;
	}
	if (flags & DISCARD_MOVES) {
		if (++discard_count > 5)
			kb_flushinp();
		return -1;
	}
	discard_count = 0;
	plr = game->player+i;
	safe = dropsafe(i);
	key &= 0x7F;
	if (!(flags & DISCARD_DROPS)) {
		switch (key) {
		case HARDDROP:
			if (socket_fd > -1 && !i) {
				sock_sendpiece(plr);
				if (harddrop(plr, safe) == -1)
					return -1;
				sock_sendbyte(HARDDROP);
				return 0;
			}
			return harddrop(plr, safe);
		case MVDOWN:
			if (!TWOPLAYER_MODE)
				return softdrop(softdrop_speed, safe);
			if (!movedown(plr, 1))
				return 0;
			if (socket_fd > -1 && !i)
				sock_sendbyte(MVDOWN);
			return 1;
		}
	}
	switch (key) {
	case MVLEFT:
		moveleft(plr);
		break;
	case MVRIGHT:
		moveright(plr);
		break;
	case MVUP:
		rotate(plr, plr->rotationsys & ROT_CLOCKWISE);
		break;
	case A_BTN:
		rotate(plr, 1);
		break;
	case B_BTN:
		rotate(plr, 0);
		break;
	default:
		return -1;
	}
	if (socket_fd > -1 && !i)
		sock_sendbyte(key);
	upd_screen(1+i);
	return 1;
}
示例#13
0
boolean tableafterprintpage (void) {
	
	moveleft (beforeprintcolwidths, (**tableformatsdata).colwidths, sizeof (short) * maxtablecols);
	
	return (true);
	} /*tableafterprintpage*/
示例#14
0
void Hero::onlogic()
{
	
	if(ifire == true)
	{
		procfire();
		return;
	}
	
	hlogic();

	// synchonized logic, based on 'speed' of the hero
	speedc++;
	
	if(speedc > speed)
	{
		speedc = 0;
		// first check for keys then joystick
		
		if(mxhwnd.KeyCheck(DIK_LEFT))
		{
			moveleft();
		}
		
		if(mxhwnd.KeyCheck(DIK_RIGHT))
		{
			moveright();
		}
		
		if(mxhwnd.KeyCheck(DIK_A))
		{
			jump();
		}

		if(mxhwnd.KeyCheck(DIK_S))
		{
			fire();
		}
		
		/*if(player.joystick == true)
		{
			MasterJoyStick* stick = getstick();
			if(stick->JoyLeft())
			{
				moveleft();
			}
			if(stick->JoyRight())
			{
				moveright();
			}
			int b;
			b = stick->JoyButtonDown();
			switch(b)
			{
			case 0:
				jump();
				break;
			case 1:
				fire();
				break;
			}
		}*/
	}
	
	
}