package ru.vagrant_ai.questionmarkgame.main;
import org.newdawn.slick.Color;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
import ru.vagrant_ai.questionmarkgame.util.Text;
import ru.vagrant_ai.questionmarkgame.util.Util;
public class preGameplayState extends BasicGameState {
int stateID = 1;
public static Image background_land;
public static Image background_room;
public static Image background_grass;
public static Image player;
public static Image player_gun;
int iter_back_land;
int max_iter_back_land;
int iter_player;
int max_iter_player;
int iter_back;
int max_iter_back;
int iter_text;
int max_iter_text;
public void enter(GameContainer container, StateBasedGame stateBasedGame) throws SlickException
{
iter_back_land = 0;
max_iter_back_land = 500;
iter_player = 0;
max_iter_player = 730;
iter_back = 0;
max_iter_back = Game.app_x;
iter_text = 0;
max_iter_text = Game.app_x*2;
}
preGameplayState( int stateID )
{
this.stateID = stateID;
}
@Override
public int getID() {
return stateID;
}
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException
{
background_land = Util.loadImage("background.png");
background_room = Util.loadImage("locker.png");
background_grass = Util.loadImage("grass.png");
player = Util.loadImage("player_idle.png");
player_gun = Util.loadImage("gun.png");
}
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException
{
g.setColor(new Color(0, 0, 78)); g.fillRect(0, 0, Game.app_x, 0+iter_back); //Background
background_room.draw(0, background_land.getHeight()*2-background_land.getHeight()*iter_back_land/max_iter_back_land); //Draw images
background_land.draw(0, background_land.getHeight()*2-background_land.getHeight()*iter_back_land/max_iter_back_land);
background_grass.draw(0, background_land.getHeight()*2-background_land.getHeight()*iter_back_land/max_iter_back_land);
player.draw(Game.app_x+20-iter_player, GameplayState.ground_level); //Player
player_gun.draw(Game.app_x+20+2-iter_player, GameplayState.ground_level+10); //Player
g.setColor(new Color(255, 0, 0));
Text.drawString(125, -Text.extractLength("'Esc' for controls", 125)*4+iter_text, Game.app_y/4, "'Esc' for controls", Color.yellow);
}
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException
{
if (iter_back_land > max_iter_back_land)
{
iter_back_land = max_iter_back_land;
}
else if (iter_back_land < max_iter_back_land)
{
iter_back_land += 20;
}
if (iter_back_land == max_iter_back_land && iter_player < max_iter_player)
{
iter_player += 50;
}
else if (iter_player > max_iter_player)
{
iter_player = max_iter_player;
}
if (iter_player == max_iter_player && iter_back < max_iter_back)
{
iter_back += 20;
}
else if (iter_back > max_iter_back)
{
iter_back = max_iter_back;
}
if (iter_back == max_iter_back && iter_text < max_iter_text)
{
if (iter_text > 650 && iter_text < 750)
iter_text++;
else
iter_text += 20;
}
else if (iter_text > max_iter_text)
{
iter_text = max_iter_text;
sbg.enterState(Game.GAMEPLAYSTATE);
}
}
}