当前位置: 首页>>代码示例>>C++>>正文


C++ CFrame::setAlpha方法代码示例

本文整理汇总了C++中CFrame::setAlpha方法的典型用法代码示例。如果您正苦于以下问题:C++ CFrame::setAlpha方法的具体用法?C++ CFrame::setAlpha怎么用?C++ CFrame::setAlpha使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CFrame的用法示例。


在下文中一共展示了CFrame::setAlpha方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CFrame

/**
 * Der Dialog, der ueber Ausgang einer Partie berichtet, mit Chat-Feld.
 **/
CGameFinishDialog::CGameFinishDialog(CGUI *vgui,CSpielClient *client)
:CDialog(390,220,"Game finished")
{
	/* Welcher Spieler auf dem entsprechenden Platz ist. Wird noch sortiert. */
	int place[PLAYER_MAX]={0,1,2,3};
	/* Farbnamen der Spieler. */
	int i;
	double y,w;

	if (client->getServerStatus()->clients==1)this->h-=30;

	gui=vgui;
	/* Chat-Box wird nicht automatisch geschlossen. */
	gui->setChatBoxSticky(true);

	/* Hier die Plaetze absteigend mit Bubble-Sort sortieren. */
	i=0;
	while (i<PLAYER_MAX-1)
	{
		if (client->get_player(place[i])->get_stone_points_left()>client->get_stone_points_left(place[i+1]))
		{
			int bla=place[i];
			place[i]=place[i+1];
			place[i+1]=bla;
			i=0;
		}else i++;
	}

	y=40;
	w=320;
	int p=1;	/* Aktueller Platz */
	/* Ein grosses Frame in den Dialog pflanschen */
	CFrame *frame;
	frame=new CFrame(x+15,this->y+30,this->w-40,115);
	frame->setColor(0,0,0);
	frame->setAlpha(0.70);
	addChild(frame);
	/* Alle Plaetze durchgehen, und sofern der Platz ueberhaupt existiert... */
	for (i=0;i<PLAYER_MAX;i++)if (
		   (client->get_gamemode()==GAMEMODE_2_COLORS_2_PLAYERS && (place[i]==0 || place[i]==2))
		|| (client->get_gamemode()==GAMEMODE_DUO && (place[i]==0 || place[i]==2))
		|| (client->get_gamemode()==GAMEMODE_JUNIOR && (place[i]==0 || place[i]==2))
		|| (client->get_gamemode()==GAMEMODE_4_COLORS_4_PLAYERS)
		|| (client->get_gamemode()==GAMEMODE_4_COLORS_2_PLAYERS && (place[i]==0 || place[i]==1))
		)
	{
		/* Wenn lokaler Spieler, waehle Farben intensiver und mal einen * */
		bool local=client->is_local_player(place[i]);
		char t[256];
		CFrame *frame;

		/* In diesem Spielmodi addieren wir die Punkte und malen zwei Frames in beiden Farben. */
		if (client->get_gamemode()==GAMEMODE_4_COLORS_2_PLAYERS)
		{
			/* Linken Frame erstellen und Farbe setzen */
			frame=new CFrame(x+20+(this->w-w)/2.0,this->y+y,(w-20)/2.0,20);
			frame->setAlpha(local?0.7:0.25);
			switch (place[i])
			{
			default:
			case 0:frame->setColor(0,0.3,1.0);
				break;
			case 1:frame->setColor(1.0,1.0,0);
				break;
			case 2:frame->setColor(1.0,0.1,0.1);
				break;
			case 3:frame->setColor(0,1.0,0);
				break;
			}
			addChild(frame);

			/* Rechten Frame erstellen und Farbe setzen. */
			frame=new CFrame(x+10+(this->w-w)/2.0+w/2.0,this->y+y,(w-20)/2.0,20);
			frame->setAlpha(local?0.7:0.25);
			switch (client->get_teammate(place[i]))
			{
			default:
			case 0:frame->setColor(0,0.3,1.0);
				break;
			case 1:frame->setColor(1.0,1.0,0);
				break;
			case 2:frame->setColor(1.0,0.1,0.1);
				break;
			case 3:frame->setColor(0,1.0,0);
				break;
			}
			addChild(frame);
			/* Punkte und Steine der beiden Farben addieren */
			int points=-client->get_stone_points_left(place[i])
			    -client->get_stone_points_left(client->get_teammate(place[i]));
			int stones=client->get_stone_count(place[i])
			    +client->get_stone_count(client->get_teammate(place[i]));
			/* Text setzen. */
			sprintf(t,"%s/%s: %d points (%d stones)",COLOR_NAME[place[i]],COLOR_NAME[client->get_teammate(place[i])],
				points,stones);
		}else{
			/* Wir erstellen nur ein Frame mit der Farbe des Spielers. */
//.........这里部分代码省略.........
开发者ID:shlusiak,项目名称:Freebloks-3D,代码行数:101,代码来源:gamedialogs.cpp


注:本文中的CFrame::setAlpha方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。