diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2015-09-12 20:55:37 -0400 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2015-09-12 20:55:37 -0400 |
commit | f3028d986781fb9a5199b6a0394b5a79871af156 (patch) | |
tree | 4adb1a0e97d5095c4087ebf9df25e592dc406421 | |
parent | 16b3df909a66c9a70309e878f67a962230b799ed (diff) |
jump
-rw-r--r-- | include/World.h | 2 | ||||
-rw-r--r-- | src/UIClass.cpp | 5 | ||||
-rw-r--r-- | src/World.cpp | 10 | ||||
-rw-r--r-- | src/main.cpp | 7 |
4 files changed, 15 insertions, 9 deletions
diff --git a/include/World.h b/include/World.h index 216be98..658adb0 100644 --- a/include/World.h +++ b/include/World.h @@ -23,7 +23,7 @@ public: World(void);
World(const float width,World *l,World *r);
void draw(void);
- void detect(vec2 *v,const float width);
+ void detect(vec2 *v,vec2 *vel,const float width);
float getWidth(void);
void saveToFile(FILE *f,World *parent);
void loadFromFile(FILE *f,World *parent);
diff --git a/src/UIClass.cpp b/src/UIClass.cpp index e416bc1..3f3a91a 100644 --- a/src/UIClass.cpp +++ b/src/UIClass.cpp @@ -16,7 +16,10 @@ void UIClass::handleEvents(){ case SDL_KEYDOWN: if(e.key.keysym.sym == SDLK_d) player.right = true; if(e.key.keysym.sym == SDLK_a) player.left = true; - if(e.key.keysym.sym == SDLK_SPACE) player.loc.y += .5; + if(e.key.keysym.sym == SDLK_SPACE){ + player.loc.y += HLINE*1.2; + player.vel.y += .004; + } if(e.key.keysym.sym == SDLK_i) if(currentWorld->behind){ player.loc.x-=(currentWorld->getWidth()-currentWorld->behind->getWidth())/2; // Match player's location to new area diff --git a/src/World.cpp b/src/World.cpp index ca19ba1..e361608 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -104,21 +104,21 @@ LOOP2: }
}
}
-void World::detect(vec2 *v,const float width){
+void World::detect(vec2 *v,vec2 *vel,const float width){
unsigned int i;
// hey
// oh hai
for(i=0;i<lineCount-10;i++){
if(v->y<line[i].start){
if(v->x>(HLINE*i)-1&&v->x<(HLINE*i)-1+HLINE){
- v->y=line[i].start;
+ if(v->y<line[i].start){vel->y=0;v->y=line[i].start+HLINE;}
return;
}else if(v->x+width>(HLINE*i)-1&&v->x+width<(HLINE*i)-1+HLINE){
- v->y=line[i].start;
+ if(v->y<line[i].start){vel->y=0;v->y=line[i].start+HLINE;}
return;
}
- }else if(v->y>line[i].start+HLINE/4){
- v->y-=HLINE/32;
+ }else if(v->y>line[i].start+HLINE){
+ vel->y-=.00000001;
}
}
}
diff --git a/src/main.cpp b/src/main.cpp index 50eab25..a9e5179 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -103,6 +103,9 @@ int main(int argc,char **argv){ } player.loc.x += player.vel.x*deltaTime; //update the player's x based on + player.loc.y += player.vel.y*deltaTime; + + npc.loc.y += npc.vel.y*deltaTime; gw=currentWorld->getWidth(); if(player.loc.x+player.width>-1+gw){ @@ -192,8 +195,8 @@ void logic(){ std::cout<<"\r("<<player.loc.x<<","<<player.loc.y<<")"; - currentWorld->detect(&player.loc,player.width); - currentWorld->detect(&npc.loc,npc.height); + currentWorld->detect(&player.loc,&player.vel,player.width); + currentWorld->detect(&npc.loc,&player.vel,npc.height); tickCount++; } |