本文整理汇总了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. */
//.........这里部分代码省略.........