void RollingballApplet::setFrame( cv::Mat& frame ) { // Filter pipeline mCalibrationFilter->setFrame( frame ); mCalibrationFilter->process(); mFrame = mCalibrationFilter->getCalibratedFrame(); // compute plate angle mAlpha = computeAngle(); // // compute new ball position // if(!mDead) { mSpeed *= 0.98; // frottement mSpeed += -6.0 * sin(M_PI/180.0 * mAlpha); // acceleration mSpeed = qBound(-20.0, mSpeed, 20.0); // limit speed mStep += mSpeed; if(mStep > W) { mStep = W; killPlayer(true); } if(mStep < -W) { mStep = -W; killPlayer(true); } } update(); }
void Cmd_Sub_f(edict_t * ent) { if (!matchmode->value) { gi.cprintf(ent, PRINT_HIGH, "This command needs matchmode to be enabled\n"); return; } if (ent->client->resp.team == NOTEAM) { gi.cprintf(ent, PRINT_HIGH, "You need to be on a team for that...\n"); return; } if (!ent->client->resp.subteam) { killPlayer(ent, true); // lets kill em. gi.bprintf(PRINT_HIGH, "%s is now a substitute for %s\n", ent->client->pers.netname, teams[ent->client->resp.team].name); ent->client->resp.subteam = ent->client->resp.team; return; } gi.bprintf(PRINT_HIGH, "%s is no longer a substitute for %s\n", ent->client->pers.netname, teams[ent->client->resp.team].name); ent->client->resp.subteam = 0; if (team_round_going && !(gameSettings & GS_ROUNDBASED)) { PutClientInServer (ent); AddToTransparentList (ent); } }
void deleteActor(character *chr) { item *lodgedItem = getItemLodgedInActor(chr); if (chr == getPlayer()) { killPlayer(); } deleteEntity(getWorld(), chr->entityId); if (lodgedItem) { lodgedItem->itemFlags ^= IS_LODGED; lodgedItem->lodgedInActor = NULL; lodgedItem->x = chr->x; lodgedItem->y = chr->y; } if (chr->itemLight) { deleteDynamicLight(chr->itemLight); chr->itemLight = NULL; } if (chr == CHARACTERS) { CHARACTERS = chr->next; } else { chr->prev->next = chr->next; if (chr->next) { chr->next->prev = chr->prev; } } free(chr); }
void Enemy_onHit( Object* e ) { if ((e->vx < 0 && player.x > e->x) || (e->vx > 0 && player.x < e->x)) { e->vx = -e->vx; e->anim.direction = -e->anim.direction; } e->state = ENEMY_STATE_MOVING + 1; setAnimation(e, 4, 4, 0); killPlayer(); }
void Water_onHit( Object* e ) { int er, ec; getObjectCell(e, &er, &ec); int pr, pc; getObjectCell((Object*)&player, &pr, &pc); if (er == pr) { killPlayer(); } }
RollingballApplet::RollingballApplet(QWidget *parent) : Applet(parent) { mName = ROLLINGBALL_NAME; mTitle = ROLLINGBALL_TITLE; // load description, marketing and technical text from // xml file. Ensure that mName is set before calling this function loadTextFromXml(); // // Build filter pipeline // mCalibrationFilter = new CalibrationFilter(); reset(); // // User interface // QPalette palette = this->palette(); palette.setColor( backgroundRole(), Qt::gray ); setPalette( palette ); // images mImgBall.load( ":/image/rollingball/spirale.png" ); mImgReflexion.load( ":/image/rollingball/reflexion.png" ); mImgShadow.load( ":/image/rollingball/ballShadow.png" ); mImgCoin.load( ":/image/rollingball/coin.png" ); QHBoxLayout *layout = new QHBoxLayout( this ); layout->setAlignment( Qt::AlignTop | Qt::AlignRight ); mLcd = new QLCDNumber( this ); mLcd->setNumDigits( 2 ); mLcd->setFixedHeight( 32 ); layout->addWidget( mLcd ); mTmrCoinLife = new QTimer( this ); mTmrCoinLife->setSingleShot( true ); connect( mTmrCoinLife, SIGNAL( timeout() ), this, SLOT( killPlayer() ) ); mTmrCoinCycle = new QTimer( this ); mTmrCoinCycle->setInterval( ROLLINGBALL_COIN_CYCLE); connect( mTmrCoinCycle, SIGNAL( timeout() ), this, SLOT( addCoin() ) ); qsrand( QTime::currentTime().msec() ); // Gestures setGestures(SWAP_LEFT_RIGHT); }
void Player::getDmg(int v) { health -= v; if (health < 0) killPlayer(); /* wou = true; int x1 = centralX(); int y1 = centralY(); wound = new QGraphicsPixmapItem(); wound->setPixmap(QPixmap(":/images/images/wound.png").scaled(game->width(),game->height())); wound->setPos(x1-game->width()/2,y1-game->height()/2); game->scene->addItem(wound); */ /* QTimer *timerw = new QTimer(); connect(timerw,SIGNAL(timeout()),this,SLOT(playerWound())); */ //QTimer::singleShot(2000, this, SLOT(playerWound())); }
static void customTrigger( int inTriggerNumber ) { //GridPos offset = { 0, 0 }; ClothingSet clothing = getEmptyClothingSet(); // increment this as we check for matches // thus, we can rearrange trigger order below // without having to update all the trigger numbers int t = 0; if( inTriggerNumber == t++ ) { forcePlayerAge( "*****@*****.**", 40 ); // audible pop // plays on decay of this place-holder object setMapObject( 2, -1, 657 ); // use this opportunity to spawn all NPCs for video GridPos startPos = { 25, -3 }; clothing.tunic = getObject( 201 ); clothing.bottom = getObject( 200 ); eve = newDummyPlayer( "*****@*****.**", 19, 20, startPos, 0, clothing ); startPos.x = 21; startPos.y = 2; clothing = getEmptyClothingSet(); lostBaby = newDummyPlayer( "*****@*****.**", 347, 1, startPos, 0, clothing ); clothing.tunic = getObject( 201 ); clothing.bottom = getObject( 200 ); startPos.x = 24; startPos.y = 4; momA = newDummyPlayer( "*****@*****.**", 350, 27, startPos, 0, clothing ); startPos.x = 25; clothing = getEmptyClothingSet(); babyA = newDummyPlayer( "*****@*****.**", 351, 1, startPos, 0, clothing ); clothing.bottom = getObject( 200 ); startPos.x = 26; startPos.y = 5; dadA = newDummyPlayer( "*****@*****.**", 355, 27, startPos, 0, clothing ); startPos.x = 27; startPos.y = 5; kidA1 = newDummyPlayer( "*****@*****.**", 353, 3, startPos, 0, clothing ); startPos.x = 30; startPos.y = 9; kidA2 = newDummyPlayer( "*****@*****.**", 350, 5, startPos, 40, clothing ); clothing.hat = getObject( 199 ); clothing.frontShoe = getObject( 203 ); clothing.backShoe = getObject( 203 ); startPos.x = 27; startPos.y = 6; grandpaA = newDummyPlayer( "*****@*****.**", 347, 55, startPos, 0, clothing ); clothing = getEmptyClothingSet(); clothing.bottom = getObject( 200 ); startPos.x = 40; startPos.y = 1; manB1 = newDummyPlayer( "*****@*****.**", 347, 28, startPos, 292, clothing ); startPos.x = 47; startPos.y = 3; manB2 = newDummyPlayer( "*****@*****.**", 354, 57, startPos, 0, clothing ); startPos.x = 42; startPos.y = 2; kidB1 = newDummyPlayer( "*****@*****.**", 352, 6, startPos, 135, clothing ); clothing.tunic = getObject( 201 ); startPos.x = 43; startPos.y = -1; womanB1 = newDummyPlayer( "*****@*****.**", 353, 29, startPos, 139, clothing ); startPos.x = 45; startPos.y = 2; womanB2 = newDummyPlayer( "*****@*****.**", 351, 49, startPos, 71, clothing ); clothing = getEmptyClothingSet(); clothing.bottom = getObject( 200 ); startPos.x = 59; startPos.y = -5; kidC1 = newDummyPlayer( "*****@*****.**", 19, 5, startPos, 0, clothing ); startPos.x = 59; startPos.y = -4; kidC2 = newDummyPlayer( "*****@*****.**", 354, 8, startPos, 277, clothing ); clothing.hat = getObject( 199 ); startPos.x = 56; startPos.y = -5; manC1 = newDummyPlayer( "*****@*****.**", 355, 56, startPos, 248, clothing ); clothing.hat = getObject( 199 ); clothing.tunic = getObject( 585 ); startPos.x = 75; startPos.y = -7; manD1 = newDummyPlayer( "*****@*****.**", 352, 20, startPos, 583, clothing ); clothing.hat = NULL; clothing.tunic = getObject( 201 ); startPos.x = 78; startPos.y = -7; manD2 = newDummyPlayer( "*****@*****.**", 347, 32, startPos, 560, clothing ); startPos.x = 69; startPos.y = -8; womanD1 = newDummyPlayer( "*****@*****.**", 350, 12.5, startPos, 441, clothing ); startPos.x = 81; startPos.y = -7; womanD2 = newDummyPlayer( "*****@*****.**", 351, 20, startPos, 67, clothing ); clothing.hat = getObject( 584 ); clothing.tunic = getObject( 585 ); clothing.frontShoe = getObject( 586 ); clothing.backShoe = getObject( 586 ); startPos.x = 91; startPos.y = -8; manE1 = newDummyPlayer( "*****@*****.**", 355, 37.5, startPos, 334, clothing ); startPos.x = 93; startPos.y = -8; womanE1 = newDummyPlayer( "*****@*****.**", 19, 23, startPos, 334, clothing ); startPos.x = 114; startPos.y = -2; clothing = getEmptyClothingSet(); clothing.tunic = getObject( 585 ); carDriver = newDummyPlayer( "*****@*****.**", 19, 20, startPos, 630, clothing ); clothing = getEmptyClothingSet(); clothing.hat = getObject( 199 ); clothing.tunic = getObject( 201 ); clothing.bottom = getObject( 200 ); clothing.frontShoe = getObject( 203 ); clothing.backShoe = getObject( 203 ); startPos.x = 116; startPos.y = -11; transportDriver = newDummyPlayer( "*****@*****.**", 19, 20, startPos, 632, clothing ); } else if( inTriggerNumber == t++ ) { // eve walks into clearing addToMove( -1, 0 ); addToMove( -2, 0 ); addToMove( -3, 0 ); addToMove( -4, 0 ); addToMove( -5, 0 ); addToMove( -6, 0 ); addToMove( -7, 0 ); sendDummyMove( &eve, finishMove() ); } else if( inTriggerNumber == t++ ) { // eve has baby GridPos startPos = { 18, -3 }; firstBaby = newDummyPlayer( "*****@*****.**", 350, 0, startPos, 0, clothing ); } else if( inTriggerNumber == t++ ) { // grab baby GridPos offset = { 0, 0 }; sendDummyAction( &eve, "BABY", offset ); } else if( inTriggerNumber == t++ ) { // eve walks south with baby addToMove( 0, -1 ); addToMove( 0, -2 ); addToMove( 0, -3 ); addToMove( 0, -4 ); addToMove( 0, -5 ); addToMove( 0, -6 ); addToMove( 0, -7 ); addToMove( 0, -8 ); sendDummyMove( &eve, finishMove() ); } else if( inTriggerNumber == t++ ) { // lost baby runs past forcePlayerAge( "*****@*****.**", 0 ); addToMove( -1, 0 ); addToMove( -2, 0 ); addToMove( -3, 0 ); addToMove( -4, 0 ); addToMove( -5, 0 ); addToMove( -6, 0 ); addToMove( -7, 0 ); addToMove( -8, 0 ); addToMove( -9, 0 ); addToMove( -10, 0 ); addToMove( -11, 0 ); addToMove( -12, 0 ); addToMove( -13, 0 ); addToMove( -14, 0 ); addToMove( -15, 0 ); addToMove( -16, 0 ); sendDummyMove( &lostBaby, finishMove() ); } else if( inTriggerNumber == t++ ) { // grab hat GridPos offset = { 0, 1 }; sendDummyAction( &momA, "USE", offset ); // put on baby offset.x = 1; offset.y = 0; setNextActionDelay( 1.0 ); sendDummyAction( &momA, "UBABY", offset, true, -1 ); // pick berry setNextActionDelay( 0.5 ); offset.x = -1; sendDummyAction( &dadA, "USE", offset ); // kid comes walking in addToMove( -1, -1 ); addToMove( -1, -2 ); addToMove( -1, -3 ); addToMove( -1, -4 ); addToMove( -2, -5 ); addToMove( -3, -5 ); addToMove( -4, -5 ); sendDummyMove( &kidA2, finishMove() ); // feed berry offset.x = 1; offset.y = 0; setNextActionDelay( 1.5 ); sendDummyAction( &dadA, "UBABY", offset, true, -1 ); // pick up baby setNextActionDelay( 2.25 ); offset.x = 1; offset.y = 0; sendDummyAction( &momA, "BABY", offset ); // walk away with baby addToMove( 1, 0 ); addToMove( 2, 0 ); addToMove( 3, 0 ); addToMove( 4, 0 ); addToMove( 4, 1 ); addToMove( 4, 2 ); addToMove( 4, 3 ); addToMove( 4, 4 ); addToMove( 4, 5 ); setNextActionDelay( 3 ); sendDummyMove( &momA, finishMove() ); } else if( inTriggerNumber == t++ ) { // skin rabbit GridPos offset = { 1, 0 }; sendDummyAction( &kidB1, "USE", offset ); // set down stone setNextActionDelay( .75 ); offset.x = 0; sendDummyAction( &kidB1, "DROP", offset, true, -1 ); // pick up rabbit fur setNextActionDelay( 1.5 ); offset.x = 1; sendDummyAction( &kidB1, "USE", offset ); // pick drop fur setNextActionDelay( 2.25 ); offset.x = 0; offset.y = 1; sendDummyAction( &kidB1, "DROP", offset, true, -1 ); // pick up skewer setNextActionDelay( 3 ); offset.x = -1; offset.y = 0; sendDummyAction( &kidB1, "USE", offset ); // skewer rabbit setNextActionDelay( 3.75 ); offset.x = 1; offset.y = 0; sendDummyAction( &kidB1, "USE", offset ); // chop wood offset.x = -1; offset.y = 0; setNextActionDelay( 0.25 ); sendDummyAction( &womanB2, "USE", offset ); // drop hatchet offset.x = 0; offset.y = 0; setNextActionDelay( 1 ); sendDummyAction( &womanB2, "DROP", offset, true, -1 ); // grab wood offset.x = -1; offset.y = 0; setNextActionDelay( 1.75 ); sendDummyAction( &womanB2, "USE", offset ); // walk to fire addToMove( -1, -1 ); addToMove( -2, -1 ); setNextActionDelay( 2.5 ); sendDummyMove( &womanB2, finishMove() ); // feed fire offset.x = -1; offset.y = 0; setNextActionDelay( 3.5 ); sendDummyAction( &womanB2, "USE", offset ); // walk into scene addToMove( -1, -1 ); addToMove( -2, -2 ); setNextActionDelay( .5 ); sendDummyMove( &manB2, finishMove() ); // grab sharp stone setNextActionDelay( 1.5 ); offset.x = 0; offset.y = 0; sendDummyAction( &manB2, "USE", offset ); // use stone on wood setNextActionDelay( 2.25 ); offset.x = -1; sendDummyAction( &manB2, "USE", offset ); // use stone on wood again setNextActionDelay( 3 ); sendDummyAction( &manB2, "USE", offset ); addToMove( 1, 0 ); addToMove( 2, 1 ); addToMove( 3, 1 ); addToMove( 4, 1 ); addToMove( 5, 2 ); addToMove( 6, 3 ); addToMove( 7, 4 ); setNextActionDelay( 4 ); sendDummyMove( &manB1, finishMove() ); addToMove( 0, 1 ); addToMove( 0, 2 ); addToMove( 0, 3 ); setNextActionDelay( 4.5 ); sendDummyMove( &womanB1, finishMove() ); } else if( inTriggerNumber == t++ ) { // light oven GridPos offset = { -1, 0 }; sendDummyAction( &manC1, "USE", offset ); // set down firebrand setNextActionDelay( 2 ); offset.x = 0; sendDummyAction( &manC1, "DROP", offset, true, -1 ); // walk to door addToMove( 1, -1 ); addToMove( 2, -2 ); setNextActionDelay( 3 ); sendDummyMove( &manC1, finishMove() ); // close door offset.y = 0; setNextActionDelay( 4 ); sendDummyAction( &manC1, "USE", offset ); // walk to pie addToMove( -1, 1 ); setNextActionDelay( 4.5 ); sendDummyMove( &manC1, finishMove() ); // grab pie offset.x = -1; setNextActionDelay( 5.5 ); sendDummyAction( &manC1, "USE", offset ); // walk to door addToMove( -1, -1 ); setNextActionDelay( .25 ); sendDummyMove( &kidC1, finishMove() ); // open door offset.x = 0; offset.y = -1; setNextActionDelay( 1 ); sendDummyAction( &kidC1, "USE", offset ); // run out addToMove( 0, -1 ); addToMove( 0, -2 ); addToMove( 0, -3 ); addToMove( 0, -4 ); addToMove( 0, -5 ); addToMove( 0, -6 ); addToMove( 0, -7 ); addToMove( 0, -8 ); addToMove( 0, -9 ); addToMove( 0, -10 ); setNextActionDelay( 1.75 ); sendDummyMove( &kidC1, finishMove() ); // follow out addToMove( 0, -1 ); addToMove( -1, -2 ); addToMove( -1, -3 ); addToMove( -1, -4 ); addToMove( -1, -5 ); addToMove( -1, -6 ); addToMove( -1, -7 ); addToMove( -1, -8 ); addToMove( -1, -9 ); addToMove( -1, -10 ); addToMove( -1, -11 ); addToMove( -1, -12 ); setNextActionDelay( 1.5 ); sendDummyMove( &kidC2, finishMove() ); } else if( inTriggerNumber == t++ ) { // hit metal repeatedly GridPos offset = { 1, 0 }; sendDummyAction( &womanD1, "USE", offset ); offset.x = -1; setNextActionDelay( 0.75 ); sendDummyAction( &womanD1, "USE", offset ); setNextActionDelay( 1.25 ); sendDummyAction( &womanD1, "USE", offset ); setNextActionDelay( 2 ); sendDummyAction( &womanD1, "USE", offset ); // kntit setNextActionDelay( 1.25 ); sendDummyAction( &manD1, "USE", offset ); // butcher setNextActionDelay( 1.75 ); sendDummyAction( &manD2, "USE", offset ); // drop knife setNextActionDelay( 2.5 ); offset.x = 0; sendDummyAction( &manD2, "DROP", offset, true, -1 ); // grab meat offset.x = -1; setNextActionDelay( 3 ); sendDummyAction( &manD2, "USE", offset ); // cook offset.y = 1; offset.x = 0; setNextActionDelay( 3.75 ); sendDummyAction( &manD2, "USE", offset ); // walk to fence addToMove( 1, -1 ); setNextActionDelay( 3 ); sendDummyMove( &womanD2, finishMove() ); // close fence offset.y = 0; offset.x = 0; setNextActionDelay( 3.75 ); sendDummyAction( &womanD2, "USE", offset ); } else if( inTriggerNumber == t++ ) { // chop tree GridPos offset = { 1, 0 }; sendDummyAction( &womanE1, "USE", offset ); // put ax in cart offset.x = 0; offset.y = 1; setNextActionDelay( 1.5 ); sendDummyAction( &womanE1, "DROP", offset, true, -1 ); // grab wood offset.y = 0; offset.x = 1; setNextActionDelay( 2.25 ); sendDummyAction( &womanE1, "USE", offset ); // put wood in cart offset.x = 0; offset.y = 1; setNextActionDelay( 3.25 ); sendDummyAction( &womanE1, "DROP", offset, true, -1 ); // walk to south addToMove( 0, -1 ); addToMove( 0, -2 ); addToMove( 0, -3 ); addToMove( 0, -4 ); addToMove( 0, -5 ); addToMove( 0, -6 ); addToMove( 0, -7 ); addToMove( 0, -8 ); addToMove( 0, -9 ); setNextActionDelay( 4 ); sendDummyMove( &womanE1, finishMove() ); // chop offset.y = 0; offset.x = 1; setNextActionDelay( 0.25 ); sendDummyAction( &manE1, "USE", offset ); // put ax in cart offset.x = -1; setNextActionDelay( 1 ); sendDummyAction( &manE1, "DROP", offset, true, -1 ); // grab wood offset.y = 0; offset.x = 1; setNextActionDelay( 1.75 ); sendDummyAction( &manE1, "USE", offset ); // put wood in cart offset.x = -1; setNextActionDelay( 2.5 ); sendDummyAction( &manE1, "DROP", offset, true, -1 ); // grab cart setNextActionDelay( 3 ); sendDummyAction( &manE1, "USE", offset ); // walk to village addToMove( -1, -1 ); addToMove( -2, -1 ); addToMove( -3, -1 ); addToMove( -4, -1 ); addToMove( -5, -1 ); addToMove( -6, -1 ); addToMove( -7, -1 ); addToMove( -8, -1 ); addToMove( -9, -1 ); setNextActionDelay( 3.5 ); sendDummyMove( &manE1, finishMove() ); } else if( inTriggerNumber == t++ ) { // car drives past addToMove( -1, 0 ); addToMove( -2, 0 ); addToMove( -3, 0 ); addToMove( -4, 0 ); addToMove( -5, 0 ); addToMove( -6, 0 ); addToMove( -7, 0 ); addToMove( -8, 0 ); addToMove( -9, 0 ); addToMove( -10, 0 ); addToMove( -11, 0 ); addToMove( -12, 0 ); addToMove( -13, 0 ); addToMove( -14, 0 ); addToMove( -15, 0 ); sendDummyMove( &carDriver, finishMove() ); addToMove( -1, 0 ); addToMove( -2, 0 ); addToMove( -3, 0 ); addToMove( -4, 0 ); addToMove( -5, 0 ); addToMove( -6, 0 ); addToMove( -7, 0 ); addToMove( -8, 0 ); addToMove( -9, 0 ); addToMove( -10, 0 ); addToMove( -11, 0 ); addToMove( -12, 0 ); setNextActionDelay( 2 ); sendDummyMove( &carDriver, finishMove() ); } else if( inTriggerNumber == t++ ) { // horn honks // plays on decay of this place-holder object setMapObject( 102, -2, 654 ); } else if( inTriggerNumber == t++ ) { // transport goes overhead addToMove( 0, 1 ); addToMove( 0, 2 ); addToMove( 0, 3 ); addToMove( 0, 4 ); addToMove( 0, 5 ); addToMove( 0, 6 ); addToMove( 0, 7 ); addToMove( 0, 8 ); addToMove( 0, 9 ); addToMove( 0, 10 ); addToMove( 0, 11 ); addToMove( 0, 12 ); addToMove( 0, 13 ); addToMove( 0, 14 ); addToMove( 0, 15 ); sendDummyMove( &transportDriver, finishMove() ); addToMove( 0, 1 ); addToMove( 0, 2 ); addToMove( 0, 3 ); addToMove( 0, 4 ); addToMove( 0, 5 ); addToMove( 0, 6 ); addToMove( 0, 7 ); addToMove( 0, 8 ); addToMove( 0, 9 ); addToMove( 0, 10 ); setNextActionDelay( 3 ); sendDummyMove( &transportDriver, finishMove() ); } else if( inTriggerNumber == t++ ) { // robot switch to firing state setMapObject( 115, 8, 648 ); } else if( inTriggerNumber == t++ ) { killPlayer( "*****@*****.**" ); } else if( inTriggerNumber == t++ ) { // robot switch to greeting state setMapObject( 115, 8, 649 ); } else if( inTriggerNumber == t++ ) { // robot switch to leaving state setMapObject( 115, 8, 0 ); GridPos startPos = { 115, 8 }; robotDummy = newDummyPlayer( "*****@*****.**", 650, 0, startPos, 0, clothing ); // robot runs north addToMove( 0, 1 ); addToMove( 0, 2 ); addToMove( 0, 3 ); addToMove( 0, 4 ); addToMove( 0, 5 ); addToMove( 0, 6 ); addToMove( 0, 7 ); addToMove( 0, 8 ); addToMove( 0, 9 ); sendDummyMove( &robotDummy, finishMove() ); } else if( inTriggerNumber == t++ ) { GridPos startPos = { -16, -8 }; wolfDummy = newDummyPlayer( "*****@*****.**", 418, 0, startPos, 0, clothing ); } else if( inTriggerNumber == t++ ) { // wolf runs past cammera addToMove( 1, -1 ); addToMove( 2, -2 ); addToMove( 3, -3 ); addToMove( 4, -4 ); addToMove( 5, -5 ); addToMove( 6, -6 ); addToMove( 7, -7 ); addToMove( 8, -8 ); sendDummyMove( &wolfDummy, finishMove() ); } else if( inTriggerNumber == t++ ) { GridPos startPos = { -10, -10 }; firstBaby = newDummyPlayer( "*****@*****.**", 19, 0, startPos, 0, clothing ); // stick a loincloth to right so we can put it on baby setMapObject( -1, -10, 200 ); // set up phonograph setMapObject( 3, 0, 488 ); setMapObject( 4, 0, 491 ); } else if( inTriggerNumber == t++ ) { sendDummySay( &firstBaby, "O" ); } else if( inTriggerNumber == t++ ) { sendDummySay( &firstBaby, "K" ); } else if( inTriggerNumber == t++ ) { GridPos deathPos = killPlayer( "*****@*****.**" ); firstBaby.pos = deathPos; } else if( inTriggerNumber == t++ ) { // baby walks around at end addToMove( 1, 0 ); addToMove( 2, 0 ); addToMove( 3, 0 ); addToMove( 4, 0 ); sendDummyMove( &firstBaby, finishMove() ); } else if( inTriggerNumber == t++ ) { // baby walks around at end addToMove( -1, 0 ); addToMove( -2, 0 ); addToMove( -3, 0 ); sendDummyMove( &firstBaby, finishMove() ); } else if( inTriggerNumber == t++ ) { // kill baby dummySockets.deleteElementEqualTo( firstBaby.sock ); delete firstBaby.sock; } }
void Game::evolue(Input& in) { if(endOfAnimation) in.setQuit(1); // Tableau des contrôles des joueurs (clavier) SDLKey tabkey[3][5] = { {SDLK_z,SDLK_s,SDLK_q,SDLK_d, SDLK_a}, {SDLK_UP,SDLK_DOWN,SDLK_LEFT,SDLK_RIGHT, SDLK_RSHIFT}, {SDLK_KP8, SDLK_KP5, SDLK_KP4, SDLK_KP6, SDLK_KP7}, }; // Tableau des controles des joueurs (joystick) int tabjoy[] = {1,4,8,2,0}; // Ecoute du clavier et Actions en conséquence for(int i=0; i<NB_PLAYERS; i++ ) { // Récupération du joueur i Player *p = mapPlayers[i]; if( p->isAlive() ) { if( in.getNbJoysticks() > 0 && ( i - in.getNbJoysticks() ) < 0 ) { // Mouvement vers le haut : if( in.getHat(i,0) == tabjoy[0] ) { doMoveUp(p); } // Mouvement vers le bas : if( in.getHat(i,0) == tabjoy[1] ) { doMoveDown(p); } // Mouvement vers la gauche : if( in.getHat(i,0) == tabjoy[2] ) { doMoveLeft(p); } // Mouvement vers la droite : if( in.getHat(i,0) == tabjoy[3] ) { doMoveRight(p); } // Remise à 0 du sprite, dès qu'on relâche toutes les touches de déplacement if( in.getHat(i,0) != tabjoy[0] && in.getHat(i,0) != tabjoy[1] && in.getHat(i,0) != tabjoy[2] && in.getHat(i,0) != tabjoy[3] ) { p->resetSprite(); } // Pose d'une bombe if( in.getButton(i, tabjoy[4]) ) { // Remise à 0 de la touche, pour éviter la pose de bombe en restant appuyé : in.resetButton(i,tabjoy[4]); doDropBomb(p); } } else { // Mouvement vers le haut : if( in.getKey(tabkey[i][0]) && !in.getKey(tabkey[i][1]) && !in.getKey(tabkey[i][2]) && !in.getKey(tabkey[i][3])) { doMoveUp(p); } // Mouvement vers le bas : if( !in.getKey(tabkey[i][0]) && in.getKey(tabkey[i][1]) && !in.getKey(tabkey[i][2]) && !in.getKey(tabkey[i][3])) { doMoveDown(p); } // Mouvement vers la gauche : if( !in.getKey(tabkey[i][0]) && !in.getKey(tabkey[i][1]) && in.getKey(tabkey[i][2]) && !in.getKey(tabkey[i][3])) { doMoveLeft(p); } // Mouvement vers la droite : if( !in.getKey(tabkey[i][0]) && !in.getKey(tabkey[i][1]) && !in.getKey(tabkey[i][2]) && in.getKey(tabkey[i][3])) { doMoveRight(p); } // Remise à 0 du sprite, dès qu'on relâche toutes les touches de déplacement if( !in.getKey(tabkey[i][0]) && !in.getKey(tabkey[i][1]) && !in.getKey(tabkey[i][2]) && !in.getKey(tabkey[i][3])) { p->resetSprite(); } // Pose d'une bombe if( in.getKey(tabkey[i][4] ) ) { // Remise à 0 de la touche, pour éviter la pose de bombe en restant appuyé : in.resetKey(tabkey[i][4]); doDropBomb(p); } } } } // Mise à jour des bombes for(int i = 0; i < mapBombs.size() ; i++ ) { updateBomb(i); } // Mise à jour des explosions for(int i = 0; i < mapExplosions.size() ; i++ ) { updateExplosion(i); } // Explosions et personnages for(int i = 0; i < mapExplosions.size() ; i++ ) { Explosion *e = mapExplosions[i]; for(int j = 0; j < e->getCollisionBoxes().size() ; j++ ) { SDL_Rect box = e->getCollisionBoxes()[j]; for(int k = 0; k < mapPlayers.size() ; k++) { Player *p = mapPlayers[k]; if( p->isAlive() ) { if( checkCollision( box, p->getBox() ) ) { killPlayer(k); } } } } } // Test du gagnant if( nbPlayersAlive == 1 ) { int indexWinner; bool win = false; for( int i = 0 ; i < mapPlayers.size() ; i++) { if( mapPlayers[i]->isAlive() ) { indexWinner = i; win =true; } if( win ) break; } if(title == NULL) { title = new AnimationPlayer("img/animations/players/player%d-wins-%d.png", indexWinner+1, 42); endOfGame = true; } } }
void Player::keyActions() // player действия при нажатии клавиши { game->centerOn(this); lastX = x(); lastY = y(); lastDeg = degree; lastHDeg = hdegree; lastHealth = health; // эффект получения урона (должен стоять перед движением) if (wou) { /* int x1 = centralX(); int y1 = centralY(); wound->setPos(x1-game->width()/2,y1-game->height()/2); */ } // движение вперед, назад if (mf) { moveForward(); if (game->createBots) *bot << "mf "; } if (mb) { moveBack(); if (game->createBots) *bot << "mb "; } // если player вышел за границы if (this->x() < game->dop - pixsize/2 || this->x() > game->scene->width()-game->dop*2 + 20 || this->y() < game->dop - pixsize/2 || this->y() > game->scene->height()-game->dop*2 + 20) { // координата Х в центре экрана int x1 = centralX(); // координата Y в центре экрана int y1 = centralY(); if (out == false) { out = true; outTime = QTime::currentTime(); outTimer = outMaxTime; QString image = ":/images/images/out.png"; caution = new Caution(image, "CAUTION", 5); caution->setPos(x1-200,y1-88); game->scene->addItem(caution); } caution->setPos(x1-200, y1-88); if (outTime.msecsTo(QTime::currentTime()) > 1000) { if (outTimer > 0) { outTimer--; outTime = outTime.addSecs(1); caution->decTimer(); } else { // DIE M**********R! //qDebug() << "you died"; out = false; outTimer = outMaxTime; delete caution; // убить killPlayer(); // BUHAHA } } } else { if (out == true) { out = false; outTimer = outMaxTime; delete caution; } } // универсальный поворот if (rl || rr) { playerRotate(); spin++; } // ты ничего не видел if (rl == false && rr == false) spin = 0; // совершенно ничего if (spin == 540) { QMediaPlayer *sound = new QMediaPlayer(); sound->setMedia(QUrl("qrc:/sounds/sounds/spin.mp3")); sound->play(); } // поворот башни if (hl) { headLeft(); if (game->createBots) *bot << "hl "; } if (hr) { headRight(); if (game->createBots) *bot << "hr "; } // звук поворота башни if ((hr || hl) && tankhrotate->state() == QMediaPlayer::StoppedState) // если звук поворота еще не проигрывался tankhrotate->play(); if (hr == false && hl == false && tankhrotate->state() == QMediaPlayer::PlayingState) tankhrotate->stop(); // стрельба + звуки стрельбы if (fr && fireReady) { playerFire(); reloading = false; // звук перезарядки еще на начат isFiring = 1; // анимация перезарядки reloadAnim = new QLabel(); reloadAnim->setStyleSheet("background-color: transparent;"); QMovie *movie = new QMovie(":/images/images/anim/Reload.gif"); reloadAnim->setMovie(movie); reloadAnim->move(x()+20,y()+20); movie->setScaledSize(QSize(180,180)); //movie->setSpeed(100); movie->start(); QGraphicsProxyWidget *proxy = game->scene->addWidget(reloadAnim); if (game->createBots) *bot << "fr "; } if (fireReady == false) // счетчик для ожидания между выстрелами { fireCount += keyDelay; reloadAnim->move(x()+20,y()+20); } if ((fireCount > fireTime - bulletready->duration()) && reloading == false) // звук перезарядки { reloading = true; // перезарядка уже начата (защита от нескольких) bulletready->play(); } if (fireCount > fireTime) // готовность выстрела { fireReady = true; fireCount = 0; delete reloadAnim; } if (game->createBots) *bot << endl; if (lastX != x() || lastY != y() || lastDeg != degree || lastHDeg != hdegree || lastHealth != health) emit KeyPressed(); if (alive == false || (mf == false && mb == false && rl == false && rr == false && hl == false && hr == false && fr == false && fireReady == true && tankhrotate->state() == QMediaPlayer::StoppedState && out == false)) { action = false; timer->stop(); } }
void Drop_onHit( Object* e ) { killPlayer(); }
void Bat_onHit( Object* e ) { killPlayer(); }
void Shot_onHit( Object* e ) { setAnimation(e, 3, 3, 5); e->state += 1; killPlayer(); }