Game met geweer

Status
Niet open voor verdere reacties.

pannekoeken

Gebruiker
Lid geworden
25 aug 2007
Berichten
135
Ey mensen,
Ik ben zelf een game aan het maken en ik ben lekker opweg.

Alleen loop ik vast met het schieten.
de game is 2d dus heeft alleen een X + y as :)


ik heb een state gemaakt waarin hij gaat schiete. Zolang je de spatie inhoud gaat er steeds 5 bij of 5 af bij de X as van de kogel. (dus de kogel gaat van links naar rechts of andersom)

als ik de space loslaat stopt die kogel dus ook gelijk. (hij verdwijnt) wat ik niet wil. Ik wil dat de kogel door blijft gaan tot hij bij het eind is.(daarna moet hij dus verdwijnen)

Op het moment gaat de kogel wel weg als hij bij het eind is maar dat is als je spatie ingedrukt houd.

Even voor de duidelijkheid :p:

De kogel moet dus doorgaan tot het eind zonder dat spatie ingedrukt is.

Zou iemand mij hier misschien mee kunnen helpen?:eek:

Mvg,

Koen!

sorry hier is hetstukje wat er gebeurt als spatie word ingedrukt:
currentImage = shootingl[animationFrame3];
drawImage(kogell, x1, y1+29);
kogelsnelheidl= -30 ;
x1 += kogelsnelheidl;
y1 = y;
de muren wanneer hij moet stoppen heb ik al aangegeven.
 
Laatst bewerkt:
Kan je het overkoepelende stuk code ook laten zien?

Want als het zo is dat je bijvoorbeeld. een while gemaakt hebt met een variable die nakijkt of de space_key down is.. en dat hij dan elke loop een actie uitvoert... kan daar de oorzaak in zitten. Want hij drawt dan zodra je de spatie loslaat de kogel niet meer.
 
// Player.java
import javax.swing.*;
import java.awt.*;

public class Player extends Renderer
{
private final int ground = 425;
private final int walkingSpeed = 10;
private final int jumpForce = 10;
private final int gravity = 1;
private int x = 0;
private int y = ground;
private int speedX = 0;
private int speedY = 0;
private int kogelsnelheidl;
private int kogelsnelheidr;
private int x1 = x;
private int y1= y;
private boolean isLookingLeft = false;
private String state = "standing";

private Image[] left;
private Image[] right;
private Image[] trekkenr;
private Image[] trekkenl;
private Image[] shootingl;
private Image[] shootingr;
private Image talkingr;
private Image talkingl;
private Image currentImage;
private Image down;
private Image kogell;
private Image kogelr;
private String pad;

private int animationFrame = 0;
private int animationFrame2 = 0;
private int animationFrame3 = 0;

public void init()
{
pad ="D:\\java\\game\\src\\";

trekkenr = new Image[8];
trekkenr[0] = loadImage(pad + "trekken1r.png");
trekkenr[1] = loadImage(pad + "trekken1r.png");
trekkenr[2] = loadImage(pad + "trekken2r.png");
trekkenr[3] = loadImage(pad + "trekken2r.png");
trekkenr[4] = loadImage(pad + "trekken3r.png");
trekkenr[5] = loadImage(pad + "trekken3r.png");
trekkenr[6] = loadImage(pad + "trekken4r.png");
trekkenr[7] = loadImage(pad + "trekken4r.png");

trekkenl = new Image[8];
trekkenl[0] = loadImage(pad + "trekken1l.png");
trekkenl[1] = loadImage(pad + "trekken1l.png");
trekkenl[2] = loadImage(pad + "trekken2l.png");
trekkenl[3] = loadImage(pad + "trekken2l.png");
trekkenl[4] = loadImage(pad + "trekken3l.png");
trekkenl[5] = loadImage(pad + "trekken3l.png");
trekkenl[6] = loadImage(pad + "trekken4l.png");
trekkenl[7] = loadImage(pad + "trekken4l.png");

shootingl = new Image[8];
shootingl[0] = loadImage(pad + "schieten1l.png");
shootingl[1] = loadImage(pad + "schieten1l.png");
shootingl[2] = loadImage(pad + "schieten1l.png");
shootingl[3] = loadImage(pad + "schieten1l.png");
shootingl[4] = loadImage(pad + "schieten2l.png");
shootingl[5] = loadImage(pad + "schieten2l.png");
shootingl[6] = loadImage(pad + "schieten2l.png");
shootingl[7] = loadImage(pad + "schieten2l.png");

shootingr = new Image[8];
shootingr[0] = loadImage(pad + "schieten1r.png");
shootingr[1] = loadImage(pad + "schieten1r.png");
shootingr[2] = loadImage(pad + "schieten1r.png");
shootingr[3] = loadImage(pad + "schieten1r.png");
shootingr[4] = loadImage(pad + "schieten2r.png");
shootingr[5] = loadImage(pad + "schieten2r.png");
shootingr[6] = loadImage(pad + "schieten2r.png");
shootingr[7] = loadImage(pad + "schieten2r.png");

left = new Image[4];
left[0] = loadImage(pad + "1l.png");
left[1] = loadImage(pad + "2l.png");
left[2] = loadImage(pad + "3l.png");
left[3] = loadImage(pad + "4l.png");

right = new Image[4];
right[0] = loadImage(pad + "1r.png");
right[1] = loadImage(pad + "2r.png");
right[2] = loadImage(pad + "3r.png");
right[3] = loadImage(pad + "4r.png");

down = loadImage(pad + "down.png");
kogell = loadImage(pad + "kogell.png");
kogelr = loadImage(pad + "kogelr.png");
talkingr = loadImage(pad + "talkingr.png");
talkingl = loadImage(pad + "talkingl.png");
currentImage = right[3];
}

public void update(Keyboard keyboard)
{
if (x <= 0)
{
x = 0;

}
if (x >= 565)
{
x = 565;

}
if (keyboard.isDown("left"))
{

speedX = -walkingSpeed;
isLookingLeft = true;
x += speedX;
state = "walking";
}

if (keyboard.isDown("right"))
{
speedX = walkingSpeed;
isLookingLeft = false;
x += speedX;
state = "walking";
}

if (keyboard.isDown("up"))
{
if (y == ground)
{
speedY = jumpForce;
currentImage = right[2];
}
}
if (keyboard.isDown("enter"))
{
state = "talking";
}

if (keyboard.isReleased("enter"))
{
state ="standing";
}

if (keyboard.isDown("f1"))
{
state ="trekken";
}

if (keyboard.isPressed("space"))
{
speedX = 0;
state ="shooting";
}

if (keyboard.isReleased("space"))
{
x1 = x;

state ="standing";
}

if (keyboard.isReleased("right") & (state.equals("walking")))
{
state = "standing";
}

if (keyboard.isReleased("left") & (state.equals("walking")))
{
state = "standing";
}

if (keyboard.isReleased("f1"))
{

state ="standing";
}

y -= speedY;

if (y >= ground)
{
speedY = 0;
y = ground;
}
else
{
speedY -= gravity;
}


}

public void render()
{
// x = y as naar scherm schrijve
String x2;
x2 = Integer.toString(x);
drawString("x: "+x2, 10,20);
String y2;
y2 = Integer.toString(y);
drawString("y: "+y2, 50,20);
//stances
if (state.equals("talking"))
{
if (isLookingLeft)
{
currentImage = talkingl;
}
else
{
currentImage = talkingr;
}

}

if (state.equals("standing"))
{
if (isLookingLeft)
{
currentImage = left[3];
}
else
{
currentImage = right[3];
}
}
if (state.equals("walking"))
{
if (isLookingLeft)
{
currentImage = left[animationFrame];
}
else
{
currentImage = right[animationFrame];
}
animationFrame++;
if (animationFrame > 3)
{
animationFrame = 0;
}
}

if (state.equals("trekken"))
{
if (isLookingLeft)
{
if (y >= ground)
{
currentImage = trekkenl[animationFrame2];
}
}
else
{
if (y >= ground)
{
currentImage = trekkenr[animationFrame2];
}

}


animationFrame2++;
if (animationFrame2 > 7)
{
animationFrame2 = 0;
}
}

if (state.equals("shooting"))
{
if (isLookingLeft)
{

if (x1 <= 0)
{
x1 = x;
}
}
else
{
if (x1 >= 640)
{
x1 = x;
}

}
if (isLookingLeft)
{
if (y >= ground)
{
currentImage = shootingl[animationFrame3];
drawImage(kogell, x1 +10, y1+29);
kogelsnelheidl= -30 ;
x1 += kogelsnelheidl;
y1 = y;
}
}
else
{
if (y >= ground)
{

currentImage = shootingr[animationFrame3];
drawImage(kogelr, x1 +82, y1+29);
kogelsnelheidr = +30 ;
x1 += kogelsnelheidr;
y1 = y;
}
}

animationFrame3++;


if (animationFrame3 > 7)
{
animationFrame3 = 0;
}
}

drawImage(currentImage, x , y);
}

}

Hier het hele scriptje :) je moet maar eens kijken bij de keyboard functies en na if (state.equals("shooting"))!

Alvast bedankt!! :eek:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan