本文整理汇总了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;未经允许,请勿转载。 |
请发表评论