Forum: Problem med att flytta objekt(i java)

Forum huvudsida -> Programmering -> Problem med att flytta objekt(i java)

Sidor: 1

Till botten

Devilholk 10:56 - 9:e Mars 2007 | Post #1
Medlem
Inlägg: 15


Skicka PM
Hej. jag har problem med lite grejer tänkte försöka mig på att leka lite och programmera ett pong spel i java. lekte först omkring lite och ritade upp grejer och det dög. lite senare när det kom till att man ska kunna röra på ena 'sticken'. höll på å kollade lite på http://www.gpwiki.org när jag gjorde detta.

Jag skulle sedan börja läsa in knapptryckningar (det är ju dock bara y man ska kunna ändra för x ska ju alltid vara densama) fick jag problem. suttit och klurat på det ganska länge nu men iaf. såhär är det

  1.  
  2. public void gameLogic(boolean[] keys) {
  3. if (keys[VK_UP]){
  4. stick1 = stick1-1;
  5. }
  6. if (keys[VK_DOWN]) {
  7. stick1 = stick1+1;
  8. }
  9. }


och så har jag ju en funktion som ska anroppa den dära. men vad ska jag stoppa in när det är boolean[] keys)
eller alltså över huvudtaget jag förstår inte ett piss just nu kanske för jag tänkt överdrivet mkt nu i några timmar.
För jag kan ju inte säga vad som ska in eftersom jag vill att den ska kolla vad det är för knapp som tryckts ner?!
testat att ändra om och bara lägga in 'boolean[] keys'
i den andra metoden men det funkar ju inte för då vill ju den ha vad som ska stoppas in. gah jag blir galen snälla hjälp. Smiley

-------------------------
Ingen signatur!



Fasting 11:20 - 9:e Mars 2007 | Post #2
Medlem
Inlägg: 121


Skicka PM
En keylistener är vad du behöver.
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyListener.html

Och hur man kan använda den visas på följande länk.
http://www.java2s.com/Code/Java/Event/DemonstratingtheKeyListener.htm

-------------------------
Efter att ni har läst det här har ni insett att det inte gav något.



Devilholk 12:08 - 9:e Mars 2007 | Post #3
Medlem
Inlägg: 15


Skicka PM
okej nu har jag testat lite. och pratar med fasting på irc. men eftersom jag precis ska gå på lunch tänkte jag posta koden här så att jag kan få svar tills nästa vecka eller senare idag.


  1. /*
  2. * Untitled.java
  3. *
  4. * Created on den 9 mars 2007, 09:05
  5. *
  6. * To change this template, choose Tools | Options and locate the template under
  7. * the Source Creation and Management node. Right-click the template and choose
  8. * Open. You can then make changes to the template in the Source Editor.
  9. */
  10. /**
  11. *
  12. * @author feklim
  13. */
  14. import java.awt.*;
  15. import java.awt.event.*;
  16. import javax.swing.*;
  17. import static java.awt.event.KeyEvent.*;
  18. import java.awt.BorderLayout;
  19. import java.awt.Container;
  20. import java.awt.event.KeyEvent;
  21. import java.awt.event.KeyListener;
  22. import javax.swing.JFrame;
  23. import javax.swing.JTextField;
  24. public class untitled extends JFrame{
  25. int x=150,y=100,xdir=1,ydir=2;
  26. int stick1=50,stick2=50;
  27. /** Creates a new instance of Untitled */
  28. public untitled() {
  29. boolean initial=true;
  30. setVisible(true);
  31. setSize(300,200);
  32. }
  33. public void paint(Graphics g){
  34. g.translate(0,25); //flyttar källan 0,0 till denna punkten
  35. g.setColor(Color.blue);
  36. g.fillRect(0,0,getWidth(),getHeight());
  37. g.setColor(Color.red);
  38. g.fillOval(x,y,20,20);
  39. move();
  40. g.setColor(Color.red);
  41. g.fillOval(x,y,20,20);
  42. //////////
  43. g.setColor(Color.YELLOW);
  44. g.fillRect(20,stick1,20,50);
  45. /////////
  46. g.setColor(Color.magenta);
  47. g.fillRect(260,stick2,20,50);
  48. }
  49. public void move() {
  50. if (x<0||x>getWidth()-20)
  51. xdir*=-1;
  52. if(y<0||y>getHeight()-45)
  53. ydir*=-1;
  54. x+=xdir;
  55. y+=ydir;
  56. if (stick1<0)
  57. stick1=stick1+1;
  58. if (stick1>getHeight()-45)
  59. stick1=stick1-1;
  60. ///////////////////////////////////
  61. }
  62. public static void main(String args[]) {
  63. untitled U = new untitled();
  64. int step=0;
  65. while(true) {
  66. if (step%500000==0) {
  67. U.repaint();
  68. }
  69. step++;
  70. }
  71. //
  72. KeyListener listener = new KeyListener() {
  73. public void keyPressed(KeyEvent e) {
  74. location(/*vad ska jag skicka in?*/);
  75. }
  76. private int location(int location) {
  77. switch (location) {
  78. case KeyEvent.KEY_LOCATION_UP:
  79. return 1;
  80. case KeyEvent.KEY_LOCATION_DOWN:
  81. return 2;
  82. default:
  83. return 0;
  84. }
  85. }
  86. };
  87. }
  88. }


FELKODER:
C:Programnetbeans-5.0ProjectUntitledsrcuntitled.java:110: <anonymous untitled$1> is not abstract and does not override abstract method keyReleased(java.awt.event.KeyEvent) in java.awt.event.KeyListener
private int location() {

C:Programnetbeans-5.0ProjectUntitledsrcuntitled.java:111: cannot find symbol
symbol: variable location
switch (location) {

C:Programnetbeans-5.0ProjectUntitledsrcuntitled.java:112: cannot find symbol
symbol : variable KEY_LOCATION_UP
location: class java.awt.event.KeyEvent
case KeyEvent.KEY_LOCATION_UP:

C:Programnetbeans-5.0ProjectUntitledsrcuntitled.java:114: cannot find symbol
symbol : variable KEY_LOCATION_DOWN
location: class java.awt.event.KeyEvent
case KeyEvent.KEY_LOCATION_DOWN:


-------------------------
Ingen signatur!

Senast redigerad 12:13 - 9:e Mars 2007


Devilholk 11:36 - 11:a Mars 2007 | Post #4
Medlem
Inlägg: 15


Skicka PM
okej nu har jag suttit och klurat. och faktiskt så får jag inga komplilator fel. men jag har heller inte kommit på hur jag ska lyckas lösa att jag vill flytta (i det här fallet) stick1 upp eller ner. Mitt problem är väl mest att förstå hur jag kan använda mig av KeyEvent och sådär. men jag är helt vilse i min kod nu. Men jag hoppas ni kan kolla på den och kanske komma med förslag. såhär ser den ut just nu

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import static java.awt.event.KeyEvent.*;
  5. import java.awt.BorderLayout;
  6. import java.awt.Container;
  7. import java.awt.event.KeyEvent;
  8. import java.awt.event.KeyListener;
  9. import javax.swing.JFrame;
  10. import javax.swing.JTextField;
  11. public class pong extends JFrame{
  12. int x=150,y=100,xdir=1,ydir=2;
  13. int stick1=50,stick2=50;
  14. public pong() {
  15. boolean initial=true;
  16. setVisible(true);
  17. setSize(300,200);
  18. }
  19. public static void main(String args[]) {
  20. boolean initial=true;
  21. pong U = new pong();
  22. int step=0;
  23. while(true) {
  24. if (step%500000==0) {
  25. U.repaint();
  26. }
  27. step++;
  28. KeyListener listener = new KeyListener() {
  29. public void keyPressed(KeyEvent e) {
  30. location(e.getKeyLocation());
  31. }
  32. public void keyReleased(KeyEvent e) {
  33. }
  34. public void keyTyped(KeyEvent e) {
  35. }
  36. public int location(int location) {
  37. switch (location) {
  38. case KeyEvent.KEY_LOCATION_LEFT:
  39. return 1;
  40. case KeyEvent.KEY_LOCATION_RIGHT:
  41. return 2;
  42. default:
  43. return 0;
  44. }
  45. //
  46. }
  47. };
  48. }
  49. }
  50. public void paint(Graphics g){
  51. g.translate(0,25); //flyttar källan 0,0 till denna punkten
  52. g.setColor(Color.blue);
  53. g.fillRect(0,0,getWidth(),getHeight());
  54. g.setColor(Color.red);
  55. g.fillOval(x,y,20,20);
  56. move();
  57. g.setColor(Color.red);
  58. g.fillOval(x,y,20,20);
  59. //////////
  60. g.setColor(Color.YELLOW);
  61. g.fillRect(20,stick1,20,50);
  62. /////////*
  63. g.setColor(Color.magenta);
  64. g.fillRect(260,stick2,20,50);
  65. }
  66. public void move() {
  67. int upp;
  68. int ner;
  69.  
  70. /*här tänkte jag ha en if sats som bestämmer vilket håll stick1 ska flyttas, om stick1 ska flyttas*/
  71. if (x<0||x>getWidth()-20)
  72. xdir*=-1;
  73. if(y<0||y>getHeight()-45)
  74. ydir*=-1;
  75. x+=xdir;
  76. y+=ydir;
  77. if (stick1<0)
  78. stick1=stick1+1;
  79. if (stick1>getHeight()-45)
  80. stick1=stick1-1;
  81. ///////////////////////////////////
  82. }
  83. //
  84. }


-------------------------
Ingen signatur!

Senast redigerad 11:39 - 11:a Mars 2007


Sidor: 1

Forum huvudsida -> Programmering -> Problem med att flytta objekt(i java)
Atom feed

Du får inte posta i den här tråden | Till toppen