• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ cpSpaceStep函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中cpSpaceStep函数的典型用法代码示例。如果您正苦于以下问题:C++ cpSpaceStep函数的具体用法?C++ cpSpaceStep怎么用?C++ cpSpaceStep使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



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

示例1: update

static void
update(int ticks)
{
	int steps = 1;
	cpFloat dt = 1.0f/60.0f/(cpFloat)steps;
	
	for(int i=0; i<steps; i++){
		cpSpaceStep(space, dt);
	}
}
开发者ID:0w,项目名称:moai-dev,代码行数:10,代码来源:OneWay.c


示例2: world_step

void world_step(World_t *aWorld, GameTimer_t *aTimer)
{
    if(aWorld->isPaused == true)
        return;

    float dt = 1.0/60.0;
    for(float t = 0.0f; t < aTimer->desiredInterval; t += dt)
        cpSpaceStep(aWorld->cpSpace, dt);
    llist_apply(aWorld->entities, (LinkedListApplier_t)&_callEntityUpdateCallback, aWorld);
}
开发者ID:fjolnir,项目名称:Dynamo,代码行数:10,代码来源:world.c


示例3: lc_space_Step

int lc_space_Step(lua_State *vm){
    //space, number
    cpSpace *space = (lc_GetSpace(1, vm))->space;
    if (space == NULL){
        printf("chipmunk: Object can't call :Step\n");
        return 0;
    }
    cpSpaceStep(space, lua_tonumber(vm, 2));
    return 0;
}
开发者ID:sixian,项目名称:lunatic-chipmunk,代码行数:10,代码来源:space.c


示例4: cpSpaceStep

void ChipmunkTestLayer::update(float delta)
{
    // Should use a fixed size step based on the animation interval.
    int steps = 2;
    float dt = CCDirector::sharedDirector()->getAnimationInterval()/(float)steps;

    for(int i=0; i<steps; i++){
        cpSpaceStep(m_pSpace, dt);
    }
}
开发者ID:645286681,项目名称:cocos2d-x,代码行数:10,代码来源:ChipmunkTest.cpp


示例5: update

static void
update(cpSpace *space, double dt)
{
	cpFloat coef = (2.0f + ChipmunkDemoKeyboard.y)/3.0f;
	cpFloat rate = ChipmunkDemoKeyboard.x*10.0f*coef;
	cpSimpleMotorSetRate(motor, rate);
	cpConstraintSetMaxForce(motor, (rate) ? 100000.0f : 0.0f);
	
	cpSpaceStep(space, dt);
}
开发者ID:00dazam,项目名称:FlappyBird-SpriteBuilder,代码行数:10,代码来源:TheoJansen.c


示例6: _step

/* step the space with fixed time step */
static void _step()
{
    static Scalar remain = 0.0;

    remain += timing_dt;
    while (remain >= period)
    {
        cpSpaceStep(space, period);
        remain -= period;
    }
}
开发者ID:andi2,项目名称:cgame,代码行数:12,代码来源:physics.c


示例7: update

static void update(int ticks)
{
	int steps = 1;
	cpFloat dt = 1.0f/60.0f/(cpFloat)steps;
	
	for(int i=0; i<steps; i++){
//i51AdeOsLog ( i51_LOG_DC , "i=%d",i ) ; 
		cpSpaceStep(mmSABSpace, dt);
//		cpSpaceEachBody(space, &eachBody, NULL);
	}
}
开发者ID:jelowang,项目名称:i51,代码行数:11,代码来源:AngryBird.cpp


示例8: cpSpaceStep

void Level::draw()
{
    cpSpaceStep(m_pSpace, 1.0/60.0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glTranslatef(-(m_pPlayer->getX()), -(m_pPlayer->getY()), 0);
    for (std::vector<LevelObject*>::iterator it = m_objList.begin(); it != m_objList.end(); ++it)
    {
        (*it)->draw();
    }
    m_pPlayer->draw();
}
开发者ID:jluqu,项目名称:fugue,代码行数:11,代码来源:Level.cpp


示例9: cpSpaceStep

void KRSimulator2D::step(double time)
{
    mCollisions.clear();

    cpSpaceStep((cpSpace*)mCPSpace, time);
    
    if (mHasChangedAngle) {
        cpBodySetAngle((cpBody*)mCPStaticBody, mNextAngle);
        cpSpaceRehashStatic((cpSpace*)mCPSpace);
        mHasChangedAngle = false;
    }
}
开发者ID:Annovae,项目名称:karakuri,代码行数:12,代码来源:KRSimulator2D.cpp


示例10: cpSpaceStep

/*** Step the space through time dt ***/
void Stage::updateEnvironment(double dt){

    cpSpaceStep(envSpace, dt);
    cpVect controlPos = cpBodyGetPosition(userControlObject->body);
    if(firstPerson){
        camera.update(glm::vec3(controlPos.x, controlPos.y + userControlObject->height/4.0f, 0.0f));
        Obj::matView = glm::lookAt(camera.pos, camera.origin, camera.up);
    } else
        Obj::matView = glm::lookAt(glm::vec3(controlPos.x, controlPos.y + 400.0f, 1000.0f), glm::vec3(controlPos.x, controlPos.y, 0.0f), camera.up);
    skybox->position = glm::vec3(controlPos.x, controlPos.y, 0);

}
开发者ID:palmerst,项目名称:CS-4ZP6,代码行数:13,代码来源:Stage.cpp


示例11: cpSpaceStep

void GameInst::Update(float a_dt)
{
	if(m_Running)
	{
		//update physworld
		/*m_tLeftPhysUpdate -= a_dt;
		if(m_tLeftPhysUpdate < 0)
		{
			m_tLeftPhysUpdate = PHYS_UPDATE_INTERVAL;
		}*/
		cpSpaceStep(m_pSpace, a_dt);

		//update player
		if(m_pCursor)
		{
			m_pPlayer->SetRedirectDir( VectorNormalise(m_pCursor->GetPosition() - m_pPlayer->GetPosition()) );
		}
		m_pPlayer->Update(a_dt);

		//update emitters (emitters update their individual laser chains)
		for (auto it = Emitters.begin(); it != Emitters.end();++it)
		{
			(*it)->Update(a_dt);
			(*it)->ParseCatchers(catcherPositions);
			
			if ((*it)->GetWon()) {
				if (!m_won) {
					m_winImage->SetPosition(sf::Vector2f(512-(float)m_winImageSource.getSize().x/2,386-(float)m_winImageSource.getSize().y/2));
					m_GUIMgr.AddWidget(m_winImage);
					//Widgets.push_back(winText);
					m_won = true;
				} else {
					m_winTimer += a_dt;
					if (m_winTimer > 3.0f) {
						m_winImage->SetPosition(sf::Vector2f(2048,2048));
						m_GUIMgr.RemoveWidget(m_winImage);
						m_won = false;
						m_winTimer = 0.0f;
						UnloadLevel();
						LoadLevel();
						return;
					}
				}
			}
		}
		
		//update blocks
		for (auto it = m_blocks.begin(); it != m_blocks.end();++it)
		{
			(*it)->Update(a_dt);
		}
	}
}
开发者ID:mileswhiticker,项目名称:mirrors-lasers,代码行数:53,代码来源:GameInst.cpp


示例12: core_update_space

//update space with the given time step, one line
void core_update_space ( cpSpace *space, cpFloat time_step ) {
    
    GameInfo *info = (GameInfo *) (space->data);
    if ( info->gameisover == 1 || info->gameisover == 2 ) {
        printf ( "GAME IS OVER\n" );
        core_explode_planet(space);
    }
    
    cpSpaceStep ( space, time_step );
    cpSpaceEachBody ( space, &core_update_body, (void *) NULL );
    cpSpaceEachBody ( space, &core_destroy_out_bodies, (void *) NULL );
}
开发者ID:nicole-hedley,项目名称:asteroid-game,代码行数:13,代码来源:core.c


示例13: l_physics_updateSpace

static int l_physics_updateSpace(lua_State* state)
{

    l_tools_checkUserDataPlusErrMsg(state, 1, "You must provide a space");
    l_physics_PhysicsData* physics = (l_physics_PhysicsData*)lua_touserdata(state, 1);

    float dt = luaL_optnumber(state, 2, timer_getDelta());

    cpSpaceStep(physics->physics->space, dt);

	return 0;
}
开发者ID:dns,项目名称:CLove,代码行数:12,代码来源:physics.c


示例14: affichage

void affichage(){
    
       
    cpFloat timeStep = 1.0/60.0;
      SDL_Color white={255,255,255};
          for(cpFloat time = 0; time < 25; time += timeStep){
              SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format,0,0,0));
              for(int i=0;i<50;i++){
                  if(lesBoules[i].del==FALSE){
                 cpVect pos = cpBodyGetPos(lesBoules[i].body);
                 cpVect vel = cpBodyGetVel(lesBoules[i].body);
    
                 rectangleColor(ecran,10, 0, 630, 420,SDL_MapRGB(ecran->format,255,255,255));
                 circleRGBA(ecran, pos.y, pos.x, lesBoules[i].radius, lesBoules[i].r,lesBoules[i].g,lesBoules[i].b,lesBoules[i].a); 
                 filledCircleRGBA(ecran,pos.y,pos.x,lesBoules[i].radius, lesBoules[i].r,lesBoules[i].g,lesBoules[i].b,lesBoules[i].a);
                 
                 //lettre
                 
                 SDL_Surface *lettre= TTF_RenderText_Solid(police, lesBoules[i].lettre, white);
                 SDL_Rect position;
                 position.y=pos.x;
                 position.x=pos.y;
                 lesBoules[i].x=pos.x;
                 lesBoules[i].y=pos.y;
                 SDL_BlitSurface(lettre, NULL, ecran, &position);
                  }
                 
 
               }

              SDL_Surface *pointsTexte=TTF_RenderText_Solid(police,"Score:" , white);
                 SDL_Rect position_pointsTexte;
                 position_pointsTexte.y=435;
                 position_pointsTexte.x=10;
                 SDL_BlitSurface(pointsTexte, NULL, ecran, &position_pointsTexte);
                 char scoreChar[15]={"0"};
                 snprintf(scoreChar, 15, "%d", score);
                 SDL_Surface *points=TTF_RenderText_Solid(police,scoreChar, white);
                 SDL_Rect position_points;
                 position_points.y=435;
                 position_points.x=100;
                 SDL_BlitSurface(points, NULL, ecran, &position_points);
                 
                 
              cpSpaceStep(espace, timeStep);
              SDL_Flip(ecran);
          }
                      //affichage points
                 
 SDL_Flip(ecran);
}
开发者ID:Hakall,项目名称:LetterBouleGame,代码行数:51,代码来源:main.c


示例15: eol_level_update

void eol_level_update(eolLevel *level)
{
  eolLevelLayer *layer = NULL;
  if (!level)return;
  layer = g_list_nth_data(level->layers,level->active);
  if (layer == NULL)return;
  /*presync*/
  eol_entity_presync_all();

  cpSpaceStep(layer->space,_eol_level_clip_step);

  /*post sync*/
  eol_entity_postsync_all();
}
开发者ID:engineerOfLies,项目名称:EngineOfLies,代码行数:14,代码来源:eol_level.c


示例16: update

static void
update(int ticks)
{
	if(ChipmunkDemoRightClick){
		QUERY_START = ChipmunkDemoMouse;
	}
	
	int steps = 1;
	cpFloat dt = 1.0f/60.0f/(cpFloat)steps;
	
	for(int i=0; i<steps; i++){
		cpSpaceStep(space, dt);
	}
}
开发者ID:50Cubes,项目名称:ClusterFear,代码行数:14,代码来源:Query.c


示例17: update_sample

/* Updating each frame
 * -------------------
 *
 * Updating and drawing a frame takes stepping the Chipmunk2D
 * simulation by the 1/1000s fration of a second passed and
 * then drawing any active tile using its up-to-date
 * position.
 * We then delegate any mouse actions to apply_mouse_motion().
 */
static void update_sample(void* data, float elapsed_ms)
{
    struct state* state = data;
    cpFloat timeStep = elapsed_ms / 1000.0;
    cpSpaceStep(state->space, timeStep);
    screen_color(color_from_RGB(244, 244, 244));
    for (size_t i = 0; i < MAX_TILES; i++) {
        if (state->tiles[i].is_active) {
            cpVect pos = cpBodyGetPosition(state->tiles[i].body);
            draw_image(state->tile_img, pos.x - state->tile_img->width / 2,
                       pos.y - state->tile_img->height / 2, NULL, 0);
        }
    }
    apply_mouse_motion(state);
}
开发者ID:rlofc,项目名称:cage,代码行数:24,代码来源:chipmunk.c


示例18: cpSpaceStep

void ws::game::Scene::update(float deltaTime) {
	
	cpSpaceStep(space, 1.0f/60.0f);//deltaTime);
	
	// PhysicalBody
	for( auto object : objects )
	{
		auto physics = object->getComponent<ws::components::PhysicalBody>("physics");
		if( physics != nullptr )
		{
			physics->update(deltaTime);
		}
	}
	sf::sleep(sf::seconds(0.01f));
}
开发者ID:zerotri,项目名称:WynterStorm,代码行数:15,代码来源:Scene.cpp


示例19: cpSpaceStep

void PhysicsWorld::update(float delta)
{
    cpSpaceStep(_info->space, delta);
    
    if (_drawNode)
    {
        _drawNode->removeFromParent();
        _drawNode = nullptr;
    }
    
    if (_debugDraw)
    {
        debugDraw();
    }
}
开发者ID:nichos1983,项目名称:cocos2d-x,代码行数:15,代码来源:CCPhysicsWorld.cpp


示例20: update

static void
update(int ticks)
{
	int steps = 3;
	cpFloat dt = 1.0f/60.0f/(cpFloat)steps;
	
	for(int i=0; i<steps; i++){
		cpSpaceStep(space, dt);
		
		// Manually update the position of the box body so that the box rotates.
		// Normally Chipmunk calls this and cpBodyUpdateVelocity() for you,
		// but we wanted to control the angular velocity explicitly.
		cpBodyUpdatePosition(rogueBoxBody, dt);
	}
}
开发者ID:meiyunyang,项目名称:chipmunk-physics,代码行数:15,代码来源:Tumble.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ cpcalloc函数代码示例发布时间:2022-05-30
下一篇:
C++ cpSpaceNew函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap