Fel med löjligt enkel javakod

Permalänk
Medlem

Fel med löjligt enkel javakod

Tja.. nästan pinsamt att be om hjälp med detta...

Sitter och pillar ihop en pong i Java att visa för en kompis som vill lära sig programmera.

Problemet är att positionen på Paddlen ändras inte när man trycker ner upp eller ner knappen. DOCK så registreras det o allt om jag System.out.println() på knapparna , alltså funkar min keylistener.

public void tick(){ if(input.up) posY -= 2; if(input.down) posY += 2;; bbox1 = new Rectangle(enemyX, enemyY, width, height); bbox2 = new Rectangle(ballPosX, ballPosY, 40, 40); ballPosX += ballSpeedX / 2; ballPosY += ballSpeedY / 2; if(ballPosY >= HEIGHT - 40){ ballSpeedY *= -1; } if(ballPosX >= WIDTH - 40){ ballPosX = WIDTH / 2 - 40; } if(ballPosY < 0){ ballSpeedY *= -1; } if(bbox1.intersects(bbox2)){ ballPosX -= 2; ballSpeedX *= -1; } enemyY = ballPosY; } public void render(){ BufferStrategy bs = getBufferStrategy(); if(bs == null){ createBufferStrategy(3); return; } Graphics g = image.getGraphics(); g.setColor(Color.BLACK); g.fillRect(0, 0, WIDTH, HEIGHT); //g.dispose(); g = bs.getDrawGraphics(); g.drawImage(image, 0, 0, getWidth(), getHeight(), null); //Draw here. g before g.setColor(Color.RED); g.fillRect(posX, posY, width, height); g.fillRect(enemyX, enemyY, width, height); g.fillOval(ballPosX, ballPosY, 40, 40); g.dispose(); bs.show(); }

Dessa är dom enda två funktioner som bör vara aktuella för problemet.. om inte annat så har ni init-koden här

public Main(){ posX = 80; posY = HEIGHT/2 - 80; width = 40; height = 160; enemyX = WIDTH - 80 - width; enemyY = posY; ballPosX = WIDTH / 2 - 20; ballPosY = HEIGHT / 2 - 20; }

Tack så hemskt mycket på förhand!

Visa signatur

Corsair Obsidian 250D | i5 7600K | Gigabyte Z270N WiFi | Samsung 960 EVO 250GB | Fractal Design Integra M 650W | Corsair Hydro H90 |Kingston 8GB 2133M DDR4 CL14 | Asus GeForce GTX 970 4GB STRIX DC2 OC MAX |

Permalänk
Medlem
Skrivet av Dakkie:

Tja.. nästan pinsamt att be om hjälp med detta...

Sitter och pillar ihop en pong i Java att visa för en kompis som vill lära sig programmera.

Problemet är att positionen på Paddlen ändras inte när man trycker ner upp eller ner knappen. DOCK så registreras det o allt om jag System.out.println() på knapparna , alltså funkar min keylistener.

public void tick(){ if(input.up) posY -= 2; if(input.down) posY += 2;; bbox1 = new Rectangle(enemyX, enemyY, width, height); bbox2 = new Rectangle(ballPosX, ballPosY, 40, 40); ballPosX += ballSpeedX / 2; ballPosY += ballSpeedY / 2; if(ballPosY >= HEIGHT - 40){ ballSpeedY *= -1; } if(ballPosX >= WIDTH - 40){ ballPosX = WIDTH / 2 - 40; } if(ballPosY < 0){ ballSpeedY *= -1; } if(bbox1.intersects(bbox2)){ ballPosX -= 2; ballSpeedX *= -1; } enemyY = ballPosY; } public void render(){ BufferStrategy bs = getBufferStrategy(); if(bs == null){ createBufferStrategy(3); return; } Graphics g = image.getGraphics(); g.setColor(Color.BLACK); g.fillRect(0, 0, WIDTH, HEIGHT); //g.dispose(); g = bs.getDrawGraphics(); g.drawImage(image, 0, 0, getWidth(), getHeight(), null); //Draw here. g before g.setColor(Color.RED); g.fillRect(posX, posY, width, height); g.fillRect(enemyX, enemyY, width, height); g.fillOval(ballPosX, ballPosY, 40, 40); g.dispose(); bs.show(); }

Dessa är dom enda två funktioner som bör vara aktuella för problemet.. om inte annat så har ni init-koden här

public Main(){ posX = 80; posY = HEIGHT/2 - 80; width = 40; height = 160; enemyX = WIDTH - 80 - width; enemyY = posY; ballPosX = WIDTH / 2 - 20; ballPosY = HEIGHT / 2 - 20; }

Tack så hemskt mycket på förhand!

Fredags eftermiddag på jobbet och är trött, så har inte orkt läsa igenom koden helt.
Har du debugat nåt?
Ändrar sig y, när du trycker?
Annars är det ju förmodlligen utritning då.

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Medlem
Skrivet av NoPaiN^:

Fredags eftermiddag på jobbet och är trött, så har inte orkt läsa igenom koden helt.
Har du debugat nåt?
Ändrar sig y, när du trycker?
Annars är det ju förmodlligen utritning då.

vaf**??
ja lade till raden "System.out.println(posY); för att kika, så funkar det? spooky..

Visa signatur

Corsair Obsidian 250D | i5 7600K | Gigabyte Z270N WiFi | Samsung 960 EVO 250GB | Fractal Design Integra M 650W | Corsair Hydro H90 |Kingston 8GB 2133M DDR4 CL14 | Asus GeForce GTX 970 4GB STRIX DC2 OC MAX |

Permalänk
Medlem
Skrivet av Dakkie:

vaf**??
ja lade till raden "System.out.println(posY); för att kika, så funkar det? spooky..

Kanske missat nåt litet skitfel, som du lyckades rätta tilll samtidigt ?

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Avstängd

Nobb, null stavfel

Permalänk
Medlem
Skrivet av pianonist:

Nobb, null stavfel

och vart ser du detta stavfel?

Visa signatur

Corsair Obsidian 250D | i5 7600K | Gigabyte Z270N WiFi | Samsung 960 EVO 250GB | Fractal Design Integra M 650W | Corsair Hydro H90 |Kingston 8GB 2133M DDR4 CL14 | Asus GeForce GTX 970 4GB STRIX DC2 OC MAX |