Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <oslib/oslib.h>
- #include "methods.h"
- PSP_MODULE_INFO("Test", 0, 1, 1);
- PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
- float gravity, angle, speed;
- float x, y;
- void oslDrawParable(float x0, float y0, float speed, float angle, float gravity, int length, OSL_COLOR color);
- int main(void) {
- oslInit(0);
- oslInitGfx(OSL_PF_8888, 1);
- oslIntraFontInit(INTRAFONT_CACHE_MED);
- x = 20;
- y = 262;
- gravity = 9.8;
- speed = 45;
- angle = 340;
- while(!osl_quit){
- CleanRead();
- oslDrawLine(0, 262, 480, 262, RGB(255, 0, 0));
- //if(osl_keys->pressed.cross)
- //drawParable(x, y, speed, angle, gravity);
- oslDrawParable(x, y, speed, angle, gravity, 50, RGB(0, 0, 255));
- //Angle
- if(osl_keys->held.L) angle -= 1;
- if(osl_keys->held.R) angle += 1;
- //X,Y
- if(abs(osl_keys->analogY) > 50){
- y = y +osl_keys->analogY/50 ;
- }
- if(abs(osl_keys->analogX) > 50){
- x = x + osl_keys->analogX/50 ;
- }
- //Speed
- if(osl_keys->held.right) speed += 0.1;
- if(osl_keys->held.left) speed -= 0.1;
- //Gravity
- if(osl_keys->held.up) gravity += 0.05;
- if(osl_keys->held.down) gravity -= 0.05;
- oslDrawLine(x, y-10, x, y+10, RGB(0, 0, 0));
- oslDrawLine(x-10, y, x+10, y, RGB(0, 0, 0));
- oslDrawLine(x , y, x + cos( toRad(angle) )* 40, y + sin( toRad(angle) )* 40, RGB(255, 0, 255));
- oslDrawStringf(5, 5, "angle: %i", (int)angle);
- oslDrawStringf(5, 15, "x: %i y: %i ", (int)x, (int)y);
- oslDrawStringf(5, 25, "speed: %f gravity: %f", speed, gravity);
- Render();
- }
- oslEndGfx();
- oslQuit();
- return 0;
- }
- void oslDrawParable(float x0, float y0, float speed, float angle, float gravity, int length, OSL_COLOR color){
- if(speed == 0.0f) return;
- int i;
- float x, y, oldx, oldy, speed_x, speed_y;
- speed_x = oslCosf( toRad(angle) ) * speed;
- speed_y = oslSinf( toRad(angle) ) * speed;
- oldx = x0;
- oldy = y0;
- for(i = 0; i < length; i++){
- x = x0 + speed_x*i;
- y = y0 + speed_y*i + (gravity/2) * (i*i);
- oslDrawLine(oldx, oldy, x, y, color);
- oldx = x;
- oldy = y;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement