void CPartEffects::AnimOnCol( Particle_s *pPart ) { // check for collision if( Collision( pPart ) ) { //set gravity to 0, and velocity to 0 pPart->flGrav = 0; pPart->vVel = vec3_t( 0,0,0 ); if( pPart->iCurFrame == 0 ) //first run { // set soemthign saying it has already been 0 pPart->iBounces = 1; pmtrace_t *pTrace = gEngfuncs.PM_TraceLine( pPart->vPOrg, pPart->vOrg, PM_TRACELINE_ANYVISIBLE, 2, -1 ); if( pTrace->fraction != 1.0 ) { pPart->vOrg = pTrace->endpos; } } Anim( pPart ); if( pPart->iCurFrame == 0 ) { // set a flag to kill it pPart->iBounces = -1; } } }
NKView::NKView(QWidget *parent, NKSkala *skala, NKEpoch *document, QTreeWidget *Tree) : QWidget(parent) { setMouseTracking(true); m_skala = skala; status = ""; grid = true; doc = document; menuAc = 0; isSelect = false; isMove = false; mTree = Tree; islink = false; pre = 0; dy = 0; pomeri = false; kateg = 0; LAr=false; RAr=false; xAr=25; timer1 = new QTimer(this); connect(timer1, SIGNAL(timeout()), this, SLOT(clearAr())); anim = new QTimer(this); connect(anim, SIGNAL(timeout()), this, SLOT(Anim())); QImage im(":/images/ar.png"); IAr=im.scaled(xAr, xAr); QImage Rim(":/images/Rar.png"); IRAr=Rim.scaled(xAr, xAr); Arr=false; }
void SpriteFrames::add_animation(const StringName &p_anim) { ERR_FAIL_COND(animations.has(p_anim)); animations[p_anim] = Anim(); animations[p_anim].normal_name = String(p_anim) + NORMAL_SUFFIX; }
void Pato::Update_Planear() { //Gravedad compensada 200 -> factor de compensacion if(velocidad.y > 0) { velocidad.y -= 200 * Pato::time_lastFrame; if(velocidad.y < 0) velocidad.y = 0; } if(angulo > 0) { angulo -=1; Rotate(angulo); } else if(angulo < 0) { angulo +=1; Rotate(angulo); } float y = pos.y + velocidad.y * time_lastFrame; float x = pos.x + velocidad.x * time_lastFrame; Move(x,y); Anim(); }
void Pato::Update_Morir() { if(currentframe == 3) { isMorir = true; } else if(isMorir) { estado = Estado::borrar; Enable(false); } Anim(); }
int main () { sf::RenderWindow Window( sf::VideoMode(640, 480), "2D Platformer", sf::Style::Titlebar ); Window.setFramerateLimit( 60 ); // create view for zoomed in retro look sf::View vZoom; vZoom.setSize( sf::Vector2f( 320, 240 ) ); vZoom.setCenter( sf::Vector2f( 160, 120 ) ); Window.setView( vZoom ); // test spritesheets platSpriteSheet Sheet; Sheet.setup( "assets/tiles.png", 32, 32 ); // test animatinos platAnimation Anim( 5, sf::seconds( 0.5 ) ); Anim.start(); while ( Window.isOpen() ) { sf::Event Event; while ( Window.pollEvent( Event ) ) { if ( Event.type == sf::Event::KeyPressed ) { if ( Event.key.code == sf::Keyboard::Escape ) { Window.close(); } } if ( Event.type == sf::Event::Closed ) { Window.close(); } } // event loop Window.clear(); Sheet.draw( Anim.frame() , sf::Vector2f( 0, 0 ), &Window ); Window.display(); } // game loop return 0; } // main function
void RigAnim::GetSplinesAndConstants(BoneIndex bone, const MatrixOperationType* ops, int num_ops, const CompactSpline** splines, float* constants) const { const std::vector<MatrixOperationInit>& matrix_ops = Anim(bone).ops(); for (int i = 0; i < num_ops; ++i) { const MatrixOperationType op = ops[i]; const MatrixOperationType alternate_op = ScaleOp(op) ? kScaleUniformly : kInvalidMatrixOperation; // Initialize return values. If the operation isn't found, we return these // default values. splines[i] = nullptr; constants[i] = OperationDefaultValue(op); // Loop through all the operations on this matrix. for (auto it = matrix_ops.begin(); it != matrix_ops.end(); ++it) { if (it->type != op && it->type != alternate_op) continue; // Use the first operation that matches. switch (it->union_type) { case MatrixOperationInit::kUnionInitialValue: constants[i] = it->initial_value; break; case MatrixOperationInit::kUnionSpline: splines[i] = it->spline; break; default: // We don't support other types of initialization. break; } break; } } }
void SpriteFrames::add_animation(const StringName& p_anim) { ERR_FAIL_COND(animations.has(p_anim)); animations[p_anim]=Anim(); }
bool Sprite::loadAnims(const string& name) { if(name.length()<2) return 0; //printf("> \"%s\"\n", name); map<string, int> animNamesTmp; Parser parsLine("", "\n\r"); Parser parsSpace("", " \t"); anims.clear(); animNames.clear(); unsigned int size=0; char *tmp=NULL; fstream in; in.open(name.c_str(), ios::binary|ios::in); in.seekg(0, ios::end); size=in.tellg(); in.seekg(0, ios::beg); try { if(!in.is_open() || size<=0) throw bad_alloc(); tmp=new char[size+1]; } catch(bad_alloc&) { printf("Sprite2D.loadAnims: Nie udalo sie wczytac informacji o animacjach, uzywanie calego obrazka"); anims.push_back(Anim(0.0f, 0.0f)); anims.back().addFrame(0, 0, w, h, 0, 0, 0, 0); return 1; } in.read(tmp, size); tmp[size]='\0'; in.close(); parsLine=tmp; delete [] tmp; for(int i=0; i<parsLine.count(); i++) { parsSpace=parsLine[i]; //printf("> %s\n", parsSpace.getText().c_str()); if(parsSpace.count()<1) continue; else if(parsSpace[0]=="--") continue; else if(parsSpace[0]=="anim") { if(parsSpace.count()<2) // Wstawianie poklatkowe { printf("Sprite2D.loadAnim: Brak wymaganych informacji (\"%s\")", parsSpace.getText().c_str()); break; } anims.push_back(Anim(parsSpace.valFloat(1), 0)); if(parsSpace.count()>2) { anims.back().setFret(parsSpace.val(2)); if(parsSpace.count()>3) animNamesTmp[parsSpace[3]]=i; } } else if(parsSpace[0]=="frame") { Anim& a=anims.back(); int count=parsSpace.val(1); if(count<=0) a.addFrame(0, 0, 0, 0); //printf("> Klatek: %d\n", count); for(int i=0; i<count; i++) { if(parsSpace.count()<4) a.addFrame(0, 0, 0, 0); else if(parsSpace.count()<8) a.addFrame(parsSpace.val(2)+parsSpace.val(4)*i, parsSpace.val(3), parsSpace.val(4), parsSpace.val(5)); else if(parsSpace.count()<10) a.addFrame(parsSpace.val(2)+parsSpace.val(4)*i, parsSpace.val(3), parsSpace.val(4), parsSpace.val(5), parsSpace.val(6), parsSpace.val(7)); else if(parsSpace.count()<14) a.addFrame(parsSpace.val(2)+parsSpace.val(4)*i, parsSpace.val(3), parsSpace.val(4), parsSpace.val(5), parsSpace.val(6), parsSpace.val(7), parsSpace.val(8), parsSpace.val(9)); else a.addFrame(parsSpace.val(2)+parsSpace.val(4)*i, parsSpace.val(3), parsSpace.val(4), parsSpace.val(5), parsSpace.val(6), parsSpace.val(7), parsSpace.val(8), parsSpace.val(9), parsSpace.val(10), parsSpace.val(11), parsSpace.val(12), parsSpace.val(13)); } } //else if(parsSpace[0]=="anim") else if(parsSpace.isVal(0) && parsSpace.count()>6) // Animacje 'na szybko' // Proste zalozenie, jesli pierwsza wartosc jest liczba to dodawana jest animacja { // 5 0 24 12 24 7 24 if(parsSpace.count()<7) { printf("Sprite2D.loadAnims: Brak wymaganych informacji (\"%s\")\n", parsSpace.getText().c_str()); break; } anims.push_back(Anim(0.0f, 0)); Anim& a=anims.back(); int count=parsSpace.val(0); for(int i=0; i<count; ++i) a.addFrame(parsSpace.val(1)+parsSpace.val(3)*i, parsSpace.val(2), parsSpace.val(3), parsSpace.val(4), parsSpace.val(5), parsSpace.val(6)); if(parsSpace.count()>7) { a.setAspd(parsSpace.valFloat(7)); if(parsSpace.count()>8) a.setFret(parsSpace.val(8)); } } } // Dodawanie nazw do mapy //int i=0; for(map<string, int>::iterator it=animNamesTmp.begin(); it!=animNamesTmp.end(); ++it) { animNames[it->first]=&anims[it->second]; //printf("Sprite2d.loadAnims: Dodawanie nazwy, animacja %d, nazwa %s", i++, it->first.c_str()); } // Sprawdz czy wczytala sie przynajmniej jedna animacja if(anims.size()<1) return 0; // Sprawdzanie czy wszystkie animacje maja conajmniej jedna klatke for(unsigned int i=0; i<anims.size(); i++) if(anims[i].getFrameCount()<1) anims[i].addFrame(0, 0, 0, 0); //printf("INFO: Sprite.loadAnim: Ilosc animacji: %d\n", anims.size()); return 1; }
void Create( u32 id, const std::string& batch, int x, int y, int w, int h ) { anims.insert( std::pair< u32, Anim >( id, Anim(batch, x, y, w, h) ) ); }
// Main int WINAPI WinMain(HINSTANCE instance, HINSTANCE, LPSTR, int cmdShow) { // Register our window class WNDCLASSEX wcex = { sizeof(WNDCLASSEX), CS_HREDRAW|CS_VREDRAW, MessageProc, 0L, 0L, instance, NULL, NULL, NULL, NULL, L"TwDX11", NULL }; RegisterClassEx(&wcex); // Create a window RECT rc = { 0, 0, 640, 480 }; AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW, FALSE); HWND wnd = CreateWindow(L"TwDX11", L"AntTweakBar simple example using DirectX11", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right-rc.left, rc.bottom-rc.top, NULL, NULL, instance, NULL); if (!wnd) { MessageBox(NULL, L"Cannot create window", L"Error", MB_OK|MB_ICONERROR); return 0; } ShowWindow(wnd, cmdShow); UpdateWindow(wnd); // Initialize D3D11 if (FAILED(InitDevice(wnd))) { MessageBox(wnd, L"Cannot create D3D11 device", L"Error", MB_OK|MB_ICONERROR); Cleanup(); return 0; } // Initialize the 3D scene if (FAILED(InitScene())) { MessageBox(wnd, L"Scene initialization failed.", L"Error", MB_OK|MB_ICONERROR); Cleanup(); return 0; } // Initialize AntTweakBar if (!TwInit(TW_DIRECT3D11, g_D3DDev)) { MessageBoxA(wnd, TwGetLastError(), "AntTweakBar initialization failed", MB_OK|MB_ICONERROR); Cleanup(); return 0; } // Create a tweak bar TwBar *bar = TwNewBar("TweakBar"); TwDefine(" GLOBAL help='This example shows how to integrate AntTweakBar into a DirectX11 application.' "); // Message added to the help bar. int barSize[2] = {224, 320}; TwSetParam(bar, NULL, "size", TW_PARAM_INT32, 2, barSize); // Add variables to the tweak bar TwAddVarCB(bar, "Level", TW_TYPE_INT32, SetSpongeLevelCB, GetSpongeLevelCB, NULL, "min=0 max=3 group=Sponge keyincr=l keydecr=L"); TwAddVarCB(bar, "Ambient Occlusion", TW_TYPE_BOOLCPP, SetSpongeAOCB, GetSpongeAOCB, NULL, "group=Sponge key=o"); TwAddVarRW(bar, "Rotation", TW_TYPE_QUAT4F, &g_SpongeRotation, "opened=true axisz=-z group=Sponge"); TwAddVarRW(bar, "Animation", TW_TYPE_BOOLCPP, &g_Animate, "group=Sponge key=a"); TwAddVarRW(bar, "Animation speed", TW_TYPE_FLOAT, &g_AnimationSpeed, "min=-10 max=10 step=0.1 group=Sponge keyincr=+ keydecr=-"); TwAddVarRW(bar, "Light direction", TW_TYPE_DIR3F, &g_LightDir, "opened=true axisz=-z showval=false"); TwAddVarRW(bar, "Camera distance", TW_TYPE_FLOAT, &g_CamDistance, "min=0 max=4 step=0.01 keyincr=PGUP keydecr=PGDOWN"); TwAddVarRW(bar, "Background", TW_TYPE_COLOR4F, &g_BackgroundColor, "colormode=hls"); // Main message loop MSG msg = {0}; while (WM_QUIT != msg.message) { if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else { Anim(); Render(); } } TwTerminate(); Cleanup(); return (int)msg.wParam; }
void SpriteAnimation::Add(const std::string &name, int start, int end, float speed) { Anim a = Anim(name, start, end, speed); animations.push_back(a); }