'나는 단순한 게임을 만들고 있으며, 그 중 일부는 당신을 공격 할 적을 원합니다. 먼저 이것을 움직이게해야합니다. 이 코드에서 "적"은 공입니다. 볼 위치로 "mob1"이라는 오브젝트를 사용하고 있으므로 나중에 여러 개의 볼을 가질 수 있습니다.공을 움직이는 것은 어떤 이유로 매우 까다 롭습니까?
내 게임 상태 -
package Worlds.World1;
import org.lwjgl.input.Mouse;
import org.newdawn.slick.Animation;
import org.newdawn.slick.Color;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.Input;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
import Main.SimpleMob;
public class World1A extends BasicGameState{
String mousePosition;
Image world;
Animation player, playerLeft, playerRight;
int[] duration = {200,200};
float playerX;
float playerY;
float WorldX;
float WorldY;
float PlayerVisibleScreenX;
float PlayerVisibleScreenY;
String MovementDirection;
SimpleMob mob1 = new SimpleMob();
public World1A(int state){
}
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException{
Image [] WalkingLeft = {new Image("res/Sprites/buckysLeft.png"),new Image("res/Sprites/buckysLeft.png")};
Image [] WalkingRight = {new Image("res/Sprites/buckysRight.png"),new Image("res/Sprites/buckysRight.png")};
playerLeft = new Animation(WalkingLeft, duration, false);
playerRight = new Animation(WalkingRight, duration, false);
player = playerRight;
playerX = 0;
playerY = 0;
WorldX = 0;
WorldY = 0;
world= new Image("res/WorldImages/WorldBackGround.png");
mousePosition="null";
MovementDirection = "Not Moved Yet";
}
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{
world.draw(WorldX, WorldY);
g.setColor(Color.white);
g.fillOval(WorldX+mob1.getX(), WorldY+mob1.getY(), 50, 50);
g.fillRect(WorldX, WorldY+300, 500, 10);
}
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException{
mob1.autoEveryThing(delta, playerX, playerY);
int posX = Mouse.getX();
int posY = Mouse.getY();
mousePosition = "X: " + posX + "\nY: " + posY;
Input input = gc.getInput();
if(input.isKeyDown(Input.KEY_LEFT)){
WorldX += delta * 0.1f;
MovementDirection = "Left";
player = playerLeft;
}else if(input.isKeyDown(Input.KEY_RIGHT)){
WorldX -= delta * 0.1f;
MovementDirection = "Right";
player = playerRight;
}else{
MovementDirection = "Not Moving";
}
}
//DO NOT CHANGE
public int getID(){
return 2;
}
}
(, BTW 임은 아무것도 변경 그냥 넣다 Slick-를 사용하여) 그리고 내 폭도
package Main;
import org.newdawn.slick.Graphics;
public class SimpleMob {
//This class shall be used as an object creator. This will randomly move a graphic around, near to a player
private float MobX;
private float MobY;
private int AmountMoved = 0;
private boolean MoveRight = true;
private boolean MoveLeft;
private boolean PlayerNear = false;
public boolean PlayerDetected = false;
//Used to find the mobs X
public float getX(){
return MobX;
}
//Used to find the mobs Y
public float getY(){
return MobY;
}
//Used to set the mobs X
public void setX(float X){
MobX = X;
}
//Used to set the mobs Y
public void setY(float Y){
MobY = Y;
}
//Used to simply move the mob on its X co-ords
public void moveX(int delta){
MobX += delta*0.1f;
}
//Used to simply move the mob on its Y co-ords
public void moveY(int delta){
MobY += delta*0.1f;
}
public void autoEveryThing(int delta, float playerX, float playerY) {
System.out.println(AmountMoved);
// If the player has not been spotted the NPC/Mob will move left and
// right by 100 Pixels.
if (MoveRight == true) {
AmountMoved++;
MobX += delta * 0.1f;
if (AmountMoved == 100) {
MoveRight = false;
MoveLeft = true;
AmountMoved = 0;
}
}
if (MoveLeft == true) {
MobX -= delta * 0.1f;
AmountMoved++;
if (AmountMoved == 100) {
MoveRight = true;
MoveLeft = false;
AmountMoved = 0;
}
}
}
}
이에 어떤 도움이 될 것를 클래스 - 좋은, 또는 (mobs을 만드는 더 정확한/쉬운 방법 theres 경우)
감사합니다
질문의 범위를 특정 문제로 제한하는 구체적인 프로그래밍 질문을하십시오. –
정확하게 "특정"이라고 생각하는 사람이 정확히 무엇입니까? –
나는 코드의 벽과 당신이하고 싶은 것에 대한 간단한 설명을 보았습니다 –