From 142816a06a0eccec7dc7668852d0e370b01274ea Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Wed, 9 Oct 2013 15:09:14 +0400 Subject: [PATCH] =?UTF-8?q?feature(foxy)=20=D0=9F=D0=B5=D1=80=D1=81=D0=BE?= =?UTF-8?q?=D0=BD=D0=B0=D0=B6=20=D1=83=D0=BC=D0=B5=D0=B5=D1=82=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B3=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ru/dmitriymx/game/Foxy.java | 45 ++++++++++++++++++++++++------- src/ru/dmitriymx/game/Main.java | 10 ++++++- src/ru/dmitriymx/game/Sprite.java | 4 +++ 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/src/ru/dmitriymx/game/Foxy.java b/src/ru/dmitriymx/game/Foxy.java index ff1495b..0de9d28 100644 --- a/src/ru/dmitriymx/game/Foxy.java +++ b/src/ru/dmitriymx/game/Foxy.java @@ -6,6 +6,7 @@ public class Foxy { private Sprite tex_idle, tex_run; private Sprite current_texture; private int x, y; + private int state; private boolean inverse = false; public Foxy(){ @@ -19,22 +20,48 @@ public class Foxy { inverse = value; } + public boolean getInverse(){ + return inverse; + } + /** * Состояние персонажа.
* 0 - idle - стоит на месте * 1 - run - бежит */ public void setState(int value){ + state = value; if(value == 0){ current_texture = tex_idle; } else if(value == 1){ current_texture = tex_run; } + current_texture.setFrame(0); + } + + public void setX(int value){ + x = value; + } + + public int getX(){ + return x; + } + + public void setY(int value){ + y = value; + } + + public int getY(){ + return y; + } + + public int getState(){ + return state; } public void render(){ Sprite.Coords frame = current_texture.getFrame(); - final int K = 2; + final int K = 4; GL11.glColor3f(1f, 1f, 1f); current_texture.bind(); @@ -43,28 +70,28 @@ public class Foxy { if(inverse){ GL11.glTexCoord2f(current_texture.floatX(frame.x2), current_texture.floatY(frame.y1)); - GL11.glVertex2f(0, 0); + GL11.glVertex2f(x, 0); GL11.glTexCoord2f(current_texture.floatX(frame.x1), current_texture.floatY(frame.y1)); - GL11.glVertex2f(current_texture.getWidthSprite()*K, 0); + GL11.glVertex2f(x + current_texture.getWidthSprite()*K, 0); GL11.glTexCoord2f(current_texture.floatX(frame.x1), current_texture.floatY(frame.y2)); - GL11.glVertex2f(current_texture.getWidthSprite()*K, current_texture.getHeightSprite()*K); + GL11.glVertex2f(x + current_texture.getWidthSprite()*K, current_texture.getHeightSprite()*K); GL11.glTexCoord2f(current_texture.floatX(frame.x2), current_texture.floatY(frame.y2)); - GL11.glVertex2f(0, current_texture.getHeightSprite()*K); + GL11.glVertex2f(x, current_texture.getHeightSprite()*K); } else { GL11.glTexCoord2f(current_texture.floatX(frame.x1), current_texture.floatY(frame.y1)); - GL11.glVertex2f(0, 0); + GL11.glVertex2f(x, 0); GL11.glTexCoord2f(current_texture.floatX(frame.x2), current_texture.floatY(frame.y1)); - GL11.glVertex2f(current_texture.getWidthSprite()*K, 0); + GL11.glVertex2f(x + current_texture.getWidthSprite()*K, 0); GL11.glTexCoord2f(current_texture.floatX(frame.x2), current_texture.floatY(frame.y2)); - GL11.glVertex2f(current_texture.getWidthSprite()*K, current_texture.getHeightSprite()*K); + GL11.glVertex2f(x + current_texture.getWidthSprite()*K, current_texture.getHeightSprite()*K); GL11.glTexCoord2f(current_texture.floatX(frame.x1), current_texture.floatY(frame.y2)); - GL11.glVertex2f(0, current_texture.getHeightSprite()*K); + GL11.glVertex2f(x, current_texture.getHeightSprite()*K); } GL11.glEnd(); diff --git a/src/ru/dmitriymx/game/Main.java b/src/ru/dmitriymx/game/Main.java index 4d1a74c..e0720c5 100644 --- a/src/ru/dmitriymx/game/Main.java +++ b/src/ru/dmitriymx/game/Main.java @@ -52,6 +52,14 @@ public class Main { } } + final int speed = 5 * 4; + if(foxy.getState() == 1){ + if(foxy.getInverse()){ + foxy.setX(foxy.getX() - speed); + } else { + foxy.setX(foxy.getX() + speed); + } + } foxy.render(); } @@ -65,7 +73,7 @@ public class Main { GL11.glClear(GL11.GL_COLOR_BUFFER_BIT); render(); Display.update(); - Display.sync(12); + Display.sync(15); } Display.destroy(); diff --git a/src/ru/dmitriymx/game/Sprite.java b/src/ru/dmitriymx/game/Sprite.java index 792f6b3..9ea928e 100644 --- a/src/ru/dmitriymx/game/Sprite.java +++ b/src/ru/dmitriymx/game/Sprite.java @@ -47,6 +47,10 @@ public class Sprite extends Texture { return frame[current_frame]; } + public void setFrame(int value){ + current_frame = value; + } + public void nextFrame(){ if(current_frame == (max_frames-1)){ current_frame = 0;