亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bullets.cpp

?? After decades of war one company, who had gained powerful supplying both sides with weaponary, steps
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
		if (distX >= 1)			distX /= 5;		if (distY >= 1)			distY /= 5;		player.shield -= (int)(10 - distX);		player.shield -= (int)(10 - distY);		Math::limitInt(&player.shield, 0, player.maxShield);		player.hit = 10;		return 1;	}	return 0;}/*Fill in later...*/void fireRay(object *attacker){	SDL_Rect ray;	if (attacker->face == 0)	{		ray.x = (int)(attacker->x + attacker->image[0]->w);	}	else	{		ray.x = (int)(attacker->x - 800);	}	ray.y = (int)(attacker->y + attacker->engineY - 1);	ray.h = 3;	ray.w = 800;	int red = SDL_MapRGB(graphics.screen->format, rand() % 256, 0x00, 0x00);	SDL_FillRect(graphics.screen, &ray, red);	graphics.addBuffer(ray.x, ray.y, ray.w, ray.h);	if (attacker != &player)	{		if (player.shield > 0)		{			if (Collision::collision(player.x, player.y, player.image[0]->w, player.image[0]->h, ray.x, ray.y, ray.w, ray.h) && (!engine.cheatShield))			{				if (player.shield > engine.lowShield)				{					if (player.shield - 1 <= engine.lowShield)					{						setInfoLine("!!! WARNING: SHIELD LOW !!!", FONT_RED);					}				}				player.shield--;				addExplosion(player.x, player.y, E_SMALL_EXPLOSION);				playSound(SFX_HIT);				if (player.shield < 1)				{					playSound(SFX_DEATH);					playSound(SFX_EXPLOSION);				}			}		}	}	object *anEnemy = enemy;	for (int i = 0 ; i < MAX_ALIENS ; i++)	{		if (anEnemy->flags & FL_IMMORTAL)			continue;		if ((anEnemy->shield > 0) && (attacker != anEnemy) && (attacker->classDef != anEnemy->classDef))		{			if (Collision::collision(anEnemy->x, anEnemy->y, anEnemy->image[0]->w, anEnemy->image[0]->h, ray.x, ray.y, ray.w, ray.h))			{				anEnemy->shield--;				addExplosion(anEnemy->x, anEnemy->y, E_SMALL_EXPLOSION);				playSound(SFX_HIT);				if (anEnemy->shield < 1)				{					destroyAlien(attacker, anEnemy);				}			}		}		*anEnemy++;	}	attacker->ammo[0]--;	if (attacker->ammo[0] < 1)		attacker->flags -= FL_FIRERAY;}/*This handles active bullets in a linked list. The current bullet andprevious bullet pointers are first assigned to the main header bulletand each successive bullet is pulled out. Bullets are moved in theirdelta coordinates, with rockets having fire trails added to them. Seperatecollision checks are done for a bullet that belongs to the enemy and onethat belongs to a player. However rockets can hit anyone. Upon an enemybeing killed, mission requirements are checked and collectables are randomlyspawned.*/void doBullets(){	object *bullet = engine.bulletHead;	object *prevBullet = engine.bulletHead;	engine.bulletTail = engine.bulletHead;	object *theEnemy, *theCargo;	signed char okayToHit = 0;	float homingMissileSpeed = 0;	while (bullet->next != NULL)	{		bullet = bullet->next;		if (bullet->active == 1)		{			if (bullet->flags & WF_HOMING)			{			  	if (bullet->target == NULL)					bullet->target = getRandomEnemy(bullet);				if (bullet->owner->flags & FL_FRIEND)					homingMissileSpeed = 0.25;				else					homingMissileSpeed = 0.05;			}			if (bullet->id == WT_ROCKET)			{				addExplosion(bullet->x, bullet->y, E_SMALL_EXPLOSION);			}			else if (bullet->id == WT_MICROROCKET)			{				addExplosion(bullet->x, bullet->y, E_TINY_EXPLOSION);			}			if ((bullet->flags & WF_AIMED) || (bullet->flags & WF_THIN_SPREAD))			{				graphics.blit(bullet->image[0], (int)(bullet->x - bullet->dx), (int)(bullet->y - bullet->dy));			}			if (bullet->id == WT_CHARGER)			{				for (int i = 0 ; i < bullet->damage ; i++)					graphics.blit(bullet->image[0], (int)(bullet->x - Math::rrand(-(bullet->damage / 3), 0)), (int)(bullet->y + Math::rrand(-3, 3)));			}			graphics.blit(bullet->image[0], (int)bullet->x, (int)bullet->y);			bullet->x += bullet->dx;			bullet->y += bullet->dy;			if (bullet->target != NULL)			{				if (bullet->x < bullet->target->x)					Math::limitFloat(&(bullet->dx += homingMissileSpeed), -15, 15);				if (bullet->x > bullet->target->x)					Math::limitFloat(&(bullet->dx -= homingMissileSpeed), -15, 15);				//Rocket is (more or less) inline with target. Fly straight				if ((bullet->x > bullet->target->x - 1) && (bullet->x < bullet->target->x + 5))					bullet->dx = 0;				if (bullet->y < bullet->target->y)					Math::limitFloat(&(bullet->dy += homingMissileSpeed), -15, 15);				if (bullet->y > bullet->target->y)					Math::limitFloat(&(bullet->dy -= homingMissileSpeed), -15, 15);				//Rocket is (more or less) inline with target. Fly straight				if ((bullet->y > bullet->target->y - 1) && (bullet->y < bullet->target->y + 5))					bullet->dy = 0;				if ((bullet->target->shield < 1) || (bullet->target->flags & FL_ISCLOAKED))					bullet->target = NULL;			}			bullet->x += engine.ssx;			bullet->y += engine.ssy;			for (int i = 0 ; i < MAX_ALIENS ; i++)			{				theEnemy = &enemy[i];				if ((theEnemy->shield < 1) || (!theEnemy->active))					continue;				okayToHit = 0;				if ((bullet->flags & WF_FRIEND) && (theEnemy->flags & FL_WEAPCO))					okayToHit = 1;				if ((bullet->flags & WF_WEAPCO) && (theEnemy->flags & FL_FRIEND))					okayToHit = 1;				if ((bullet->id == WT_ROCKET) || (bullet->id == WT_LASER) || (bullet->id == WT_CHARGER))					okayToHit = 1;				if (bullet->owner == theEnemy->owner)					okayToHit = 0;				if (okayToHit)				{					if ((bullet->active == 1) && (Collision::collision(bullet, theEnemy)))					{						if (bullet->owner == &player)						{							currentGame.hits++;							if ((theEnemy->classDef == CD_PHOEBE) || (theEnemy->classDef == CD_URSULA))								getMissFireMessage(theEnemy);						}						if (!(theEnemy->flags & FL_IMMORTAL))						{							if (!(bullet->flags & WF_DISABLE))								theEnemy->shield -= bullet->damage;							else								theEnemy->systemPower -= bullet->damage;							theEnemy->hit = 5;						}						if (theEnemy->flags & FL_CANNOTDIE)						{							Math::limitInt(&theEnemy->shield, 1, theEnemy->maxShield);							if (theEnemy->shield == 1)							{								if (currentGame.area != 26)								{									if (!(theEnemy->flags & FL_LEAVESECTOR))									{										theEnemy->flags += FL_LEAVESECTOR;										if (theEnemy->flags & FL_CIRCLES)											theEnemy->flags -= FL_CIRCLES;										if (currentGame.area == 11)											setRadioMessage(FACE_KLINE, "Seems I underestimated you, Bainfield! We'll meet again!", 1);										else if (currentGame.area == 25)											setRadioMessage(FACE_SID, "Chris, Kethlan is getting away!", 1);									}								}								else								{									setKlineAttackMethod(theEnemy);								}							}						}						if ((theEnemy->flags & FL_RUNSAWAY) && ((rand() % 50) == 0))						{							if (!(theEnemy->flags & FL_LEAVESECTOR))								theEnemy->flags += FL_LEAVESECTOR;						}						if (bullet->id != WT_CHARGER)						{							bullet->active = 0;							bullet->shield = 0;						}						else if (bullet->id == WT_CHARGER)						{							bullet->shield -= theEnemy->shield;							if (bullet->shield < 0)								bullet->active = 0;						}						playSound(SFX_HIT);						if (theEnemy->AIType == AI_EVASIVE)							theEnemy->thinktime = 0;						if (theEnemy->shield < 1)							destroyAlien(bullet, theEnemy);						if (theEnemy->systemPower < 1)						{							if (!(theEnemy->flags & FL_DISABLED))							{								theEnemy->flags += FL_DISABLED;								updateMissionRequirements(M_DISABLE_TARGET, theEnemy->classDef, 1);							}							theEnemy->systemPower = 0;							if (theEnemy->classDef == CD_KLINE)								theEnemy->systemPower = theEnemy->maxShield;						}						if (bullet->id == WT_ROCKET)							addExplosion(bullet->x, bullet->y, E_BIG_EXPLOSION);						else							addExplosion(bullet->x, bullet->y, E_SMALL_EXPLOSION);					}				}			}			// Check for bullets hitting player			if ((bullet->flags & WF_WEAPCO) || (bullet->id == WT_ROCKET) || (bullet->id == WT_LASER) || (bullet->id == WT_CHARGER))			{				if ((bullet->active == 1) && (player.shield > 0) && (Collision::collision(bullet, &player)) && (bullet->owner != &player))				{					if ((!engine.cheatShield) || (engine.missionCompleteTimer != 0))					{						if (player.shield > engine.lowShield)						{							if (player.shield - bullet->damage <= engine.lowShield)							{								setInfoLine("!!! WARNING: SHIELD LOW !!!", FONT_RED);							}						}						player.shield -= bullet->damage;						Math::limitInt(&player.shield, 0, player.maxShield);						player.hit = 5;					}					if ((bullet->owner->classDef == CD_PHOEBE) || (bullet->owner->classDef == CD_URSULA))						getPlayerHitMessage(bullet->owner);					if (bullet->id != WT_CHARGER)					{						bullet->active = 0;						bullet->shield = 0;					}					else if (bullet->id == WT_CHARGER)					{						bullet->shield -= theEnemy->shield;						if (bullet->shield < 0)							bullet->active = 0;					}					playSound(SFX_HIT);					if (bullet->id == WT_ROCKET)						addExplosion(bullet->x, bullet->y, E_BIG_EXPLOSION);					else						addExplosion(bullet->x, bullet->y, E_SMALL_EXPLOSION);				}			}		}		if (((bullet->owner == &player)) || (bullet->id == WT_ROCKET))		{			for (int j = 0 ; j < 20 ; j++)			{				theCargo = &cargo[j];				if (theCargo->active)				{					if (Collision::collision(bullet, theCargo))					{						bullet->active = 0;						addExplosion(bullet->x, bullet->y, E_SMALL_EXPLOSION);						playSound(SFX_HIT);						if (theCargo->collectType != P_PHOEBE)						{							theCargo->active = 0;							playSound(SFX_EXPLOSION);							for (int i = 0 ; i < 10 ; i++)								addExplosion(theCargo->x + Math::rrand(-15, 15), theCargo->y + Math::rrand(-15, 15), E_BIG_EXPLOSION);							updateMissionRequirements(M_PROTECT_PICKUP, P_CARGO, 1);						}					}				}			}		}		// check to see if a bullet (on any side) hits a mine		checkMineBulletCollisions(bullet);		bullet->shield--;		if (bullet->shield < 1)		{			if ((bullet->flags & WF_TIMEDEXPLOSION) || (bullet->id == WT_CHARGER))			{				playSound(SFX_EXPLOSION);				for (int i = 0 ; i < 10 ; i++)					addExplosion(bullet->x + Math::rrand(-35, 35), bullet->y + Math::rrand(-35, 35), E_BIG_EXPLOSION);				if (bullet->flags & WF_TIMEDEXPLOSION)					if (checkPlayerShockDamage(bullet->x, bullet->y, 75))						setInfoLine("Warning: Missile Shockwave Damage!!", FONT_RED);			}			bullet->active = 0;		}		if (bullet->active == 1)		{			prevBullet = bullet;			engine.bulletTail = bullet;		}		else		{			prevBullet->next = bullet->next;			delete bullet;			bullet = prevBullet;		}	}}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品大尺度| av成人老司机| 亚洲成人动漫在线免费观看| 国产亚洲成av人在线观看导航| 日本精品一区二区三区高清 | 精品成人免费观看| 欧美精品亚洲二区| 国产精品久久看| 亚洲丝袜美腿综合| 91精品在线一区二区| 欧美三级电影在线观看| 91成人网在线| 欧美猛男超大videosgay| 欧美日韩久久久久久| 欧美色图12p| 欧美一级午夜免费电影| 精品国产在天天线2019| 精品美女一区二区| 精品国产伦一区二区三区观看体验| 在线免费观看日本一区| 色香蕉久久蜜桃| 99精品欧美一区二区三区小说 | 国产98色在线|日韩| 精品一区二区三区av| 日本福利一区二区| 在线看国产日韩| 久久国产精品色婷婷| 丝袜诱惑亚洲看片| 久久99精品久久只有精品| 日韩高清电影一区| 美女爽到高潮91| 久久福利资源站| 国产成人夜色高潮福利影视| 国产精品456露脸| 高清国产一区二区| 国产传媒一区在线| 不卡的av在线播放| 91成人免费网站| 欧美一区二区免费视频| 精品免费一区二区三区| 久久久国产午夜精品| 国产精品福利影院| 亚洲欧洲国产日本综合| 精品成人免费观看| 91麻豆福利精品推荐| 91成人看片片| 日韩免费高清av| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美激情在线免费观看| 亚洲成人在线网站| 国产伦精品一区二区三区免费| 国产麻豆视频精品| 91成人看片片| 欧美精品一区二区三区高清aⅴ| 久久综合狠狠综合| 亚洲综合视频在线观看| 久久99精品久久久久久动态图| 国产99久久久精品| 欧美男同性恋视频网站| 久久你懂得1024| 亚洲在线视频网站| 国内精品国产成人国产三级粉色| 91在线精品一区二区| 欧美aaa在线| 韩日精品视频一区| 日本韩国欧美一区| 日韩一区国产二区欧美三区| 国产日韩精品一区二区浪潮av | 日韩电影在线一区| 国精品**一区二区三区在线蜜桃| 99久久精品免费看国产免费软件| 欧美日韩一本到| 国产日产欧美精品一区二区三区| 午夜精品福利在线| 99久久精品国产精品久久| 精品国产一区二区在线观看| 亚洲va韩国va欧美va| 成人激情动漫在线观看| 精品国产一区二区三区av性色| 亚洲国产中文字幕| 色婷婷激情一区二区三区| 日韩不卡一二三区| 日韩成人免费在线| 午夜精品久久久久久久久久| 精品一区中文字幕| 欧美一区二区三区精品| 亚洲一区电影777| 91丝袜呻吟高潮美腿白嫩在线观看| 国产日韩精品一区| 国产美女娇喘av呻吟久久| 日韩免费成人网| 蜜臀久久久久久久| 91精品久久久久久蜜臀| 午夜电影网一区| 欧美日本一区二区| 亚洲第一综合色| 91麻豆精品国产91久久久使用方法 | 69堂国产成人免费视频| 亚洲福利视频三区| 欧美亚洲另类激情小说| 亚洲欧美日韩国产另类专区| 色婷婷综合久久久久中文| 国产精品久久久久一区| 91亚洲精品久久久蜜桃| 亚洲综合丁香婷婷六月香| 国产成人av一区二区| 欧美国产成人精品| 不卡区在线中文字幕| 国产精品无人区| 99国产精品久久久| 一个色妞综合视频在线观看| 欧美性受xxxx黑人xyx性爽| 日韩精品午夜视频| 欧美v日韩v国产v| 成人黄页在线观看| 亚洲一区二区av在线| 欧美一区二区不卡视频| 国产精品亚洲а∨天堂免在线| 国产精品网站一区| 91精品福利在线| 日韩激情中文字幕| 国产日韩av一区| 日本电影欧美片| 久久精品国产亚洲a| 国产欧美日韩麻豆91| 欧美午夜精品久久久久久孕妇| 日韩专区中文字幕一区二区| 欧美精品一区二区三区很污很色的 | 欧美亚洲国产bt| 久久精品国产一区二区| 日韩欧美精品在线视频| 蜜桃久久精品一区二区| 日韩一级片网站| 丰满岳乱妇一区二区三区| 国产精品你懂的在线欣赏| 国产成人精品免费一区二区| 精品久久人人做人人爽| 成人午夜电影久久影院| 中文字幕av不卡| 9l国产精品久久久久麻豆| 久久国产精品一区二区| 国产精品久久久久久久久久久免费看 | 久久丁香综合五月国产三级网站| 久久免费午夜影院| 欧美视频一区在线| 粉嫩在线一区二区三区视频| 亚洲精品综合在线| 欧美精品一区二区高清在线观看| av亚洲精华国产精华| 丝瓜av网站精品一区二区| 日本一区二区免费在线| 91精品国产综合久久蜜臀| 久久电影网电视剧免费观看| 日韩黄色在线观看| 18成人在线视频| 综合久久给合久久狠狠狠97色 | 国产午夜亚洲精品理论片色戒 | 日韩一区国产二区欧美三区| 99久久久国产精品免费蜜臀| 国产精品主播直播| 日韩av中文在线观看| 亚洲一卡二卡三卡四卡无卡久久 | 国产精品系列在线播放| 亚洲一二三级电影| 中文字幕一区免费在线观看| 欧美一区二区视频观看视频| 99国产精品久久久久久久久久久| 国内精品伊人久久久久av影院| 日本 国产 欧美色综合| 亚洲小说欧美激情另类| 亚洲色图欧美在线| 国产精品三级久久久久三级| 欧美精品亚洲二区| 欧美亚男人的天堂| 色婷婷激情综合| 91丨九色丨蝌蚪富婆spa| 免费看欧美美女黄的网站| 日韩电影在线看| 亚洲国产精品久久人人爱蜜臀| 国产精品久99| 日韩欧美中文字幕制服| 在线综合亚洲欧美在线视频| 色婷婷av一区二区三区软件 | 国产美女在线观看一区| 激情综合色综合久久综合| 毛片av一区二区| 国产在线一区二区| 国产精品系列在线播放| 北岛玲一区二区三区四区| 久久国产乱子精品免费女| 日产精品久久久久久久性色| 香蕉加勒比综合久久| 亚洲午夜激情网页| 亚洲美女电影在线| 亚洲一二三区在线观看| 日本欧美大码aⅴ在线播放| 久久er99热精品一区二区| 国产成人av电影在线| 91蝌蚪国产九色| 在线播放91灌醉迷j高跟美女|