Sign in to follow this  
simondid

chess game moving briks around problem :( pleas help

Recommended Posts

hey


so I'm working on a chess game and I'm struggling with getting the briks to move right and I can't figure out how to get them moving right [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img] if someone cut pleas take a look at it have packed the hole eclipse save folder in to a rar and link it with the post [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] I know that the current code aren't moving the birks around atm....

i'm using the slick lib

sry for my English [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img] Edited by simondid

Share this post


Link to post
Share on other sites
INFERNAL-RK ya i know most off the 4 mb is grafiks and othere stuff not relavent to the questions the only file ppl has to look at is chessGame ;) it's kinda hard to seperate becouse the code is spread out over the hole file

Share this post


Link to post
Share on other sites
I took a look at the code briefly, this particular function puzzles me a bit

[CODE]

public void update(GameContainer gc,StateBasedGame sgb ,int delta)throws SlickException{
Input input = gc.getInput();
float mouseX = Mouse.getX();
float mouseY = Mouse.getY();

for(int i =0;i<trackingposX.length-1;i++){

if((mouseX>trackingposX[i]&&mouseX<trackingposX[i+1])&&(mouseY<trakingposY[i]&&mouseY>trakingposY[i+1])){

if(input.isMousePressed(0)){

brik[i-8] = 3;

}
}
}


}

[/CODE]

it looks like you are only looping through the trackingposX, but the thing is you are using the same index, so I'm considered that some of your logic is flawed here, as it is only checking the diagonal pieces of the board.

Share this post


Link to post
Share on other sites
ya thats the funktion i'm having trubel with....

i'm traying with the for loop to look true every singel position on x axis with is the same length as the y array

this
[source lang="java"] if((mouseX>trackingposX[i]&&mouseX<trackingposX[i+1])&&(mouseY<trakingposY[i]&&mouseY>trakingposY[i+1])){[/source]
it is for desiden if the mouse is with in exampel trackingposX[0] and trackingposX[1] and if it is also with in trackingposY[0] and trackingposY[1]


the
[source lang="java"]if(input.isMousePressed(0)){

brik[i-8] = 3;

}[/source]
is for checking if the mouse is clicked and placing a brik on the position the reason for the i+8 is that for some reason it has been placing the brik 8 position ahead off the clicked position


hope this helped you a littel understanding the code :)

sry for my english :(

Share this post


Link to post
Share on other sites
thats the thing, since your using the same "i" to check both the x & y pos, it is only checking for

trackingposX[0] && trackingposY[0],
trackingposX[1] && trackingposY[1],
trackingposX[2] && trackingposY[2],
trackingposX[3] && trackingposY[3] etc...

you would have to change the loop to include


[CODE]
for(int i =0;i<trackingposX.length-1;i++)
for(int k =0;k<trackingposY.length-1;k++){

if((mouseX>trackingposX[i]&&mouseX<trackingposX[i+1])&&(mouseY<trakingposY[k]&&mouseY>trakingposY[k+1])){

if(input.isMousePressed(0)){

brik[k*8+i] = 3;

}
}
}
[/CODE]

this code probably wont fix everything though as I suspect there might be more issues, but it is part of the problem.

Share this post


Link to post
Share on other sites
is there supposed to be a particular width? Otherwise before this condition will pass, it needs pixel perfect accuracy

[code]
if((mouseX>trackingposX[i]&&mouseX<trackingposX[i]+WIDTH)&&(mouseY>trakingposY[k]&&mouseY<trakingposY[k]+HEIGHT))
[/code]

*edited to add: I just noticed Neverending_Loop has k+1 for the second traack, my bad Edited by dimitri.adamou

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this