Пример #1
0
Файл: sprite.c Проект: wKLV/puun
void updateNrender(){
    float a, b;
    float time;
    u32 ms;
    getTimeElapsed(&ms);
    time = ms / 1000.f;
    getMousePosition(&a, &b);
    paddleX = s2p(a);
    paddleRot = s2p(b);
    static float rotate = 0;
    static float vx = 0, vy = -1, px = 0, py = 0, av =0;
    static char hasBounced = 0;

    rotate += av*time;
    px += time*vx, py += time*vy;
    square_rotateTo(ball, rotate);
    square_traslateTo(ball, px, py);

    square_traslateTo(paddle, paddleX, paddleY);
    square_rotateTo(paddle, paddleRot);

    squareList_update_pos(Sprites.squareList, buffer);

    //CHECK COLLISION :)
    if(hasBounced!= 1 && px <-1){ bounce(TAU/4, &vx, &vy, &av, 1.);hasBounced = 1; }
    if(hasBounced!=2 && px> 1){ bounce(-TAU/4, &vx, &vy, &av, 1.);hasBounced = 2;}
    if(hasBounced!=3 && py >1){ bounce(-TAU/2, &vx, &vy, &av, 1.); hasBounced = 3; }
    if(py <-1){
        game_die();
    }
    if(hasBounced!=4 && px<= paddleX+0.4 && px>=paddleX-0.4  && py<=paddleY+0.05 && py>=paddleY-0.05) {
        bounce(3/4*TAU-paddleRot, &vx, &vy, &av, 1.2);
        hasBounced = 4;
        score++;
    }
    puun_MouseClick click;
    getMouseClick(&click);
    puun_KEY key;
    getKeyboardKey(&key);
    if(click)
        printf("MOUSE CLICKED\n");
    if(key.isPressed) printf("%c\n", key.key);




    glClearColor(1.0, 1.0, 1.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    renderSpriteList(Sprites);
    //uniImg.id = ballId;
    //uniImg.texnum = 0;
    //render_squareList(Squares, (Data)&uniImg, 1);


    puun_SWAP_BUFFERS();
    //SDL_GL_SwapBuffers();
}
Пример #2
0
	void update()
	{
		auto doc = parent<InteractiveDocument>();
		Point oldPos = m_position.getValue(), newPos = doc->getMousePosition();

		Point delta;
		if(oldPos != newPos)
		{
			m_position.setValue(newPos);
			if(!m_firstTimestep)
				delta = newPos - oldPos;
		}

		if(delta != m_movement.getValue())
			m_movement.setValue(delta);

		m_clickState.setValue(doc->getMouseClick());

		m_firstTimestep = false;
	}