Пример #1
0
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;
		}
	}
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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();
}
Пример #5
0
void Pato::Update_Morir()
{	
	if(currentframe == 3)
	{
		isMorir = true;
	}
	else if(isMorir)
	{
		estado = Estado::borrar;
		Enable(false);
	}	
	Anim();
}
Пример #6
0
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
Пример #7
0
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;
    }
  }
}
Пример #8
0
void SpriteFrames::add_animation(const StringName& p_anim) {

	ERR_FAIL_COND(animations.has(p_anim));

	animations[p_anim]=Anim();
}
Пример #9
0
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;
	}
Пример #10
0
	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;
}
Пример #12
0
	void SpriteAnimation::Add(const std::string &name, int start, int end, float speed)
	{
		Anim a = Anim(name, start, end, speed);
		animations.push_back(a);
	}