Ming_TongXue 2020-09-08 18:57 采纳率: 0%
浏览 87

用C语言为太空战机游戏编写一个分数达到500的时候BOSS出现的代码

我的思路是if(g_VerTemplate.iScore=500),后面的不知道咋弄了
创建敌方战机的代码
void CreateVerTick( float fDeltaTime )
{
// 是否到时间创建
g_fVerCreateTime -= fDeltaTime;
if( g_fVerCreateTime <= 0.f )
{
// 随机一个时间,作为下次出生的时间
g_fVerCreateTime = (float)dRandomRange( 5, 10 ) ;
// 飞机群的第一个飞机的起始Y坐标
int iPosBase = RandomRange((int)g_fWorldTop + 5, (int)g_fWorldTop + 25);
// 随机数量
int iCount = dRandomRange( VER_MIN_CREATE, VER_MAX_CREATE );
for( int iLoop = 0; iLoop < iCount; iLoop++ )
{
// 创建Sprite
SGameSprite pSprite=(SGameSprite)malloc( sizeof(SGameSprite) );
memcpy( pSprite, &g_VerTemplate, sizeof(SGameSprite) );
sprintf(pSprite->szName,"VerticalSprite_%d", g_iCreatedSpriteCount++ );
pSprite->fFloatTime=(float)dRandomRange(0, 10) / 10.f; // 上升和下降都取随机值
pSprite->bFloatUp=dRandomRange(0,1) == 1 ? true : false;
dCloneSprite( "VerticalSprite_Template", pSprite->szName );
// 添加到链表中
GList_AddSprite( pSprite );
// 坐标生成:
int iRandom =dRandomRange((int)g_fWorldRight+20, (int)g_fWorldRight + 40 );
float fPosY = g_fWorldTop + iPosBase + 10.f * iLoop;
dSetSpritePosition( pSprite->szName, (float)iRandom, fPosY );
// 固定速度
dSetSpriteLinearVelocityX( pSprite->szName, -10.f );
// 设置世界边界限制,及碰撞模式为NULL,即自行处理
dSetSpriteWorldLimit(pSprite->szName,WORLD_LIMIT_NULL, g_fWorldLeft-10.f,g_fWorldTop,g_fWorldRight+ 100.f, g_fWorldBottom );
}
}
}

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!