Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.84 KB | None | 0 0
  1. private static final int ButtonWidth = 256, ButtonHeight = 256;
  2.  
  3. public MenuState(Handler handler){
  4. super(handler);
  5. }
  6.  
  7. @Override
  8. public void tick() {
  9. if(handler.getMouseManager().isLeftPressed())
  10. State.setState(handler.getGame().gameState);
  11. }
  12.  
  13. @Override
  14. public void render(Graphics g) {
  15. g.setColor(Color.RED);
  16. g.fillRect(handler.getMouseManager().getMouseX(), handler.getMouseManager().getMouseY(), 8, 8);
  17. g.drawImage(Assets.PlayButton, 500, 100, ButtonWidth, ButtonHeight, null );
  18. g.drawImage(Assets.ExitButton, 500, 400, ButtonWidth, ButtonHeight, null);
  19. }
  20. }
  21.  
  22. private boolean leftPressed;
  23. private int mouseX, mouseY;
  24.  
  25. public MouseManager(){
  26.  
  27. }
  28.  
  29. //Getters
  30.  
  31. public boolean isLeftPressed(){
  32. return leftPressed;
  33. }
  34.  
  35. public int getMouseX(){
  36. return mouseX;
  37. }
  38.  
  39. public int getMouseY(){
  40. return mouseY;
  41. }
  42.  
  43. // Implemented methods
  44.  
  45. @Override
  46. public void mousePressed(MouseEvent e) {
  47. if(e.getButton() == MouseEvent.BUTTON1)
  48. leftPressed = true;
  49.  
  50. }
  51.  
  52. @Override
  53. public void mouseReleased(MouseEvent e) {
  54. if(e.getButton() == MouseEvent.BUTTON1)
  55. leftPressed = false;
  56. }
  57.  
  58. @Override
  59. public void mouseMoved(MouseEvent e) {
  60. mouseX = e.getX();
  61. mouseY = e.getY();
  62. }
  63.  
  64. @Override
  65. public void mouseDragged(MouseEvent e) {
  66. // TODO Auto-generated method stub
  67.  
  68. }
  69.  
  70. @Override
  71. public void mouseClicked(MouseEvent e) {
  72. // TODO Auto-generated method stub
  73.  
  74. }
  75.  
  76. @Override
  77. public void mouseEntered(MouseEvent e) {
  78. // TODO Auto-generated method stub
  79.  
  80. }
  81.  
  82. @Override
  83. public void mouseExited(MouseEvent e) {
  84. // TODO Auto-generated method stub
  85.  
  86. }
  87. }
  88.  
  89. public class Handler {
  90.  
  91. private Game game;
  92. private World world;
  93.  
  94. public Handler(Game game){
  95. this.game = game;
  96. }
  97.  
  98. public GameCamera getGameCamera(){
  99. return game.getGameCamera();
  100. }
  101.  
  102. public KeyManager getKeyManager(){
  103. return game.getKeyManager();
  104. }
  105.  
  106. public MouseManager getMouseManager(){
  107. return game.getMouseManager();
  108. }
  109.  
  110. public int getWidth(){
  111. return game.getWidth();
  112. }
  113.  
  114. public int getHeight(){
  115. return game.getHeight();
  116. }
  117.  
  118. public Game getGame() {
  119. return game;
  120. }
  121.  
  122. public void setGame(Game game) {
  123. this.game = game;
  124. }
  125.  
  126. public World getWorld() {
  127. return world;
  128. }
  129.  
  130. public void setWorld(World world) {
  131. this.world = world;
  132. }
  133. }
  134.  
  135. private Display display;
  136. private int width, height;
  137. public String title;
  138.  
  139. private boolean running = false;
  140. private Thread thread;
  141.  
  142. private BufferStrategy bs;
  143. private Graphics g;
  144.  
  145. //States
  146. public State gameState;
  147. public MenuState menuState;
  148.  
  149. //Input
  150. private KeyManager keyManager;
  151. private MouseManager mouseManager;
  152.  
  153. //Camera
  154. private GameCamera gameCamera;
  155.  
  156. //Handler
  157. private Handler handler;
  158.  
  159. public Game(String title, int width, int height){
  160. this.width = width;
  161. this.height = height;
  162. this.title = title;
  163. keyManager = new KeyManager();
  164. mouseManager = new MouseManager();
  165. }
  166.  
  167. private void init(){
  168. display = new Display(title, width, height);
  169. display.getFrame().addKeyListener(keyManager);
  170. display.getFrame().addMouseListener(mouseManager);
  171. display.getFrame().addMouseMotionListener(mouseManager);
  172. display.getCanvas().addMouseListener(mouseManager);
  173. display.getCanvas().addMouseMotionListener(mouseManager);
  174. Assets.init();
  175.  
  176. handler = new Handler(this);
  177. gameCamera = new GameCamera(handler, 0, 0);
  178.  
  179. gameState = new GameState(handler);
  180. menuState = new MenuState(handler);
  181. State.setState(menuState);
  182. }
  183.  
  184. private void tick(){
  185. keyManager.tick();
  186.  
  187. if(State.getState() != null);
  188. State.getState().tick();
  189. }
  190.  
  191. private void render(){
  192. bs = display.getCanvas().getBufferStrategy();
  193. if(bs == null){
  194. display.getCanvas().createBufferStrategy(3);
  195. return;
  196. }
  197. g = bs.getDrawGraphics();
  198. //Clear Screen
  199. g.clearRect(0, 0, width, height);
  200. //Draw Here!
  201.  
  202. if(State.getState() != null);
  203. State.getState().render(g);
  204.  
  205. //End Drawing!
  206. bs.show();
  207. g.dispose();
  208. }
  209.  
  210. public void run(){
  211.  
  212. init();
  213.  
  214. int fps = 1000;
  215. double timePerTick = 1000000000 / fps;
  216. double delta = 0;
  217. long now;
  218. long lastTime = System.nanoTime();
  219. long timer = 0;
  220. int ticks = 0;
  221.  
  222. while(running){
  223. now = System.nanoTime();
  224. delta += (now - lastTime) / timePerTick;
  225. timer += now - lastTime;
  226. lastTime = now;
  227.  
  228. if(delta >=1){
  229. tick();
  230. render();
  231. ticks++;
  232. delta--;
  233. }
  234. if(timer >= 1000000000){
  235. System.out.println("Tick and Frames:" + ticks);
  236. ticks = 0;
  237. timer = 0;
  238. }
  239. }
  240.  
  241. stop();
  242.  
  243. }
  244.  
  245. public KeyManager getKeyManager(){
  246. return keyManager;
  247. }
  248.  
  249. public MouseManager getMouseManager(){
  250. return mouseManager;
  251. }
  252.  
  253. public GameCamera getGameCamera(){
  254. return gameCamera;
  255. }
  256.  
  257. public int getWidth(){
  258. return width;
  259. }
  260.  
  261. public int getHeight(){
  262. return height;
  263. }
  264.  
  265. public synchronized void start(){
  266. if(running)
  267. return;
  268. running = true;
  269. thread = new Thread(this);
  270. thread.start();
  271. }
  272.  
  273. public synchronized void stop(){
  274. if(!running)
  275. return;
  276. running = false;
  277. try {
  278. thread.join();
  279. } catch (InterruptedException e) {
  280. e.printStackTrace();
  281. }
  282. }
  283. }
  284.  
  285. public void mouseClicked(MouseEvent e){
  286. if(button.x < e.getX() && buttonWidth + button.x > e.getX() && button.y < e.getY() && button.y + buttonHeight > e.getY(){
  287. //Button has been clicked
  288. }
  289. }
  290.  
  291. import javax.swing.*;
  292. import java.awt.*;
  293. import java.awt.event.MouseEvent;
  294. import java.awt.event.MouseListener;
  295.  
  296. public class Game implements MouseListener{
  297.  
  298. public static void main(String[] args){
  299. new Game();
  300. }
  301.  
  302. private JFrame frame;
  303. private Game(){
  304. init();
  305. loop();
  306. }
  307.  
  308. private void init(){
  309. frame = new JFrame("TEST");
  310. frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  311. frame.setSize(600, 400);
  312. frame.addMouseListener(this);
  313. running = true;
  314. frame.setVisible(true);
  315. }
  316.  
  317. private boolean shouldClose = false;
  318. private boolean running;
  319. private final int buttonWidth = 100;
  320. private final int buttonHeight = 50;
  321. private void loop(){
  322. while(running){
  323. Graphics g = frame.getGraphics();
  324. g.drawRect(500, 100, buttonWidth, buttonHeight);
  325. }
  326. frame.setVisible(false);
  327. }
  328.  
  329. @Override
  330. public void mouseClicked(MouseEvent e) {
  331. if(500 < e.getX() && buttonWidth + 500 > e.getX() && 100 < e.getY() && 100 + buttonHeight > e.getY()){
  332. System.out.println("BUTTON WAS PRESSED!");
  333. running = false;
  334. }
  335. }
  336.  
  337. @Override
  338. public void mousePressed(MouseEvent e) {
  339.  
  340. }
  341.  
  342. @Override
  343. public void mouseReleased(MouseEvent e) {
  344.  
  345. }
  346.  
  347. @Override
  348. public void mouseEntered(MouseEvent e) {
  349.  
  350. }
  351.  
  352. @Override
  353. public void mouseExited(MouseEvent e) {
  354.  
  355. }
  356. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement