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(); }
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; }