aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/World.h2
-rw-r--r--src/UIClass.cpp5
-rw-r--r--src/World.cpp10
-rw-r--r--src/main.cpp7
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++;
}