I was following a tutorial on how to make a game when i suddenly got an error concerning moving tiles. i get this error when i tried to use a and d to move:
Exception in thread "Display" java.lang.ArrayIndexOutOfBoundsException: 48600
at com.cherno.graphics.Screen.render(Screen.java:44)
at com.cherno.Game.render(Game.java:124)
at com.cherno.Game.run(Game.java:87)
at java.lang.Thread.run(Unknown Source)
I do not get the error while using w or s but the tiles are still not moving when pressing them.
I'm trying to understand and learn Java for GUI but I'm stacked around a project. I had done some other "test app" but on this, I can't figure out what I had done. I can't move my circle around the panel.... Where I had made some errors?
Main class package main; // imports import javax.swing.JFrame; import java.awt.Dimension; public class Main { public static final int WIDTH = 320; public static final int HEIGHT = 240; public static final int SCALE = 2;
My program compiles and runs ok how ever when i open my Jinternal frame and click on one of the JLabels i get a error on the Cmd ther error reads as follows
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at JLabelAssignment.mouseClicked(JLabelAssignment.jav a:429) at java.awt.Component.processMouseEvent(Component.jav a:6508) at javax.swing.JComponent.processMouseEvent(JComponen t.java:3320)
So I'd like to make like a library of tiles, and it isn't too big, which I could just call using a method, and I would specificy what information I need to get, and it would return that information.
For example, a small section of the tiles library is grass_tile, I call this library and specify what I need, and in this case let's say I need the width, or can the character enter it from north? or can the character just stand on it? So it's like a library or array, with sections of it being named by tiles, and by mentioning these tiles I can information about them.
gTile("grass","walkon") will return true, first because I specifiy grass, and yes the character can walk on grass, so it returns a boolean value of true.
gTile("stone","width") will return 16, first because I specify stone, and the stone's png image size is 16.
What I'm asking is not for how to work out if the character can walk on the tile, or read the width of a tile, but can I create like a library from which I can obtain information by giving the name of the tile, and then telling it what info I need.
If up key pressed && gTile((yTILE + 1).name(),"walkon") == true then moveChar("up")
I am making a tile based top-down 2D RPG and am using Box2D for the physics. Since my game is tile-based, there are many tiles on each map that cannot be moved through. This results in many small individual Box2D bodies. This is obviously very inefficient and makes the game lag. Therefore I figured that combining the individual tiles' bodies into larger complex groups would be better.
The way I thought of doing it is to, first, group together tiles into groups of tiles that all share 2 vertices with at least one other tile in the group. Then, for each group I do the following. First I get all of the uncommon vertices (these should be the ones on the outside of the polygon). Then I connect all of those vertices and then remove all of the overlapping lines. This should result in only lines on the outside of the polygon. Then I sort the lines so that the first line in the sorted array shares its end point with the second line's start point, etc. Then I remove the doubled vertices and using those remaining vertices (I called them the "true vertices") I create the polygon. I know that Box2D only supports convex polygons, but with Box2DSeparator I should be able to do this, but I first want this method to actually work.
/** * Attempts to combine the given blocks into larger bodies to improve performance. * @param bs The created wall blocks. * @param w The world. Used for body creation. */ private void makeLargeBodies(Block[][] bs, World w) { Array<Tile> tiles = new Array<Tile>(); for(int i = 0; i < bs.length; i++) {
[Code] .....
However, this is where the first problem arises. This method is extremely slow for large maps (like 200x200 tiles). I have worked at this for very long and right now my head can't figure out how to make the loop more efficient...
Now for the next part. After that I attempt to create the bodies for the TileGroups:
//create all the groups' bodies size = groups.size; System.out.println(size + " groups"); for(int i = 0; i < size; i++) { TileGroup g = groups.get(i); System.out.println("Starting group " + i + "."); long timeCheck = TimeUtils.millis(); g.createBody(w); System.out.println("Group 0 took " + (TimeUtils.millis() - timeCheck) + " millis"); }
*Note that the printing is for debugging purposes*...
This method is probably not a problem; it is what is inside createBody(World) that is the issue...
public void createBody(World w) { Array<Vector2> allVertices = new Array<Vector2>(); Array<Vector2> uncommonVertices = new Array<Vector2>(); System.out.print("Starting search for uncommon vertices. "); long timeCheck = TimeUtils.millis();
[Code] .....
Most of the code is self-explanatory (with comments). My current issue is where I connect the uncommon vertices (see the printed statements). This method does not actually finish (I have let it run for several minutes and it does not complete). This is likely due to a large number of vertices (often around 3000 in a 60x60 map), but I cannot figure out how to make the loop more efficient... Because of this early failure I don't know if the rest of the method works, both physically and in theory.
All relevant classes (Tile, TileGroup, Line) are below:
private class Tile { private Vector2[] vertices; private TileGroup group; public Tile(int x, int y) { vertices = new Vector2[4];
I have already tried every possible way for removing this bug but all failed. The problem is that sometimes my player passes through the map tiles, i mean, the algorithm is like -- if not colliding, move in required direction; else if colliding, move in opposite direction. But sometimes the second condition fails i dont understand why.
Alright, so I'm having problems with lines 11 - 55. I'm trying to calculate the possible tiles the clicked unit can be moved on and display it to the player.
The field is a 9 (columns) by 5 (rows) grid. A unit with can move tiles horizontally or vertically based on its movement.
Example: (unit = o; possible tiles = x) (assuming movement of 2).
I tried to calculate movement by finding out what column the unit is in, subtracting the column it wants to go to, multiplying the difference by *-1 if the difference is less than 0. Then, doing the same with rows and adding the difference of columns to the difference of rows and comparing it to the unit's movement. Unfortunately, with my code, it seems to move in any directions.
@Override public void mouseClicked(MouseEvent e) { if (Main.cards.size() > 0) { mainloop: for (int i = 0; i < Main.cards.size(); i++) { Card c = (Card) Main.cards.get(i); int startingColumn = 0;
I've been at this for a while and I would like to make the Camera in my game follow the player and I know the way to do this would be to move the map and not the player. How would I do this if my map is rendered from a text file using for loops. Here is my code for the map.
package Game; import java.awt.Graphics; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Map {
I just have one problem with a "car" program in java. The objective is to move the car in the direction it is facing. Moving forward in the normal position (when the angle is zero) means moving in the x-axis. Choosing to turn the car function (for example: 90 ) and then using the forward function should move up or down the car in the y-axis. However the y-axis is not working.
Basically I have a program that paints a simple object image. There are 5 of these objects altogether and different classes and methods have been set up to do this and this works correctly. The program currently also asks the user if they would like to change the colour of this object shape, and which shape they would like to change (user inputs a number 1-5) then the program will change the colour of this shape.
But the new task is for the user to input a number (1-5) to which shape they would like to MOVE position of. Hhow this would be done? Would there need to be different methods for changePositionX, changePositionY? The user needs to input the X and Y co ordinates and then this will move the selected shape to its NEW position in the current JFRAME.
Why does my program write that i have problem in Timer?
public class Ball extends JPanel implements ActionListener { Timer timer = new Timer (3, this); int x = 0, y = 0, aX = 2, aY = 2; public void PaintComponent(Graphics g){ Graphics2D g2 = (Graphics2D) g;
I can't find any resource on the net about a simple Java code just to move a gif image left or right. I've already accomplished the up, down, and center and they're working fine, thus, I'm still struggling with moving the image left or right. Here's the code.
public class MoveIt extends Applet implements ActionListener { private Image cup; private Panel keypad; public int top = 10; public int left = 10;
[Code] ....
I remember in Visual BASIC it's easily achieved by NameOfImage.left = NameOfImage.left - 10 to move left and NameOfImage.left = NameOfImage.left + 10.
I'm currently taking a computer science class but the class is moving extremely slow and I'm not learning much, so I've started to program on my own. The most recent project I've done is a tic tac toe game, and I'm looking for something else to do now. I can do with an increased difficulty from this project, but not extremely difficult.
So I've been working on a music player in android studio and I've created two java classes. One for Main Start Screen(StartScreen.Java) and one for the main player (player.Java). I have an onClicl event associated with a button as shown below.
public void onclick(View view) { Intent detailIntent = new Intent(this, main_player.class); startActivity(detailIntent); }
The code for the second Java Class is as below. There is nothing in the java class as for now.
package com.example.musicplayer.app; import android.app.Activity; import android.os.Bundle; public class main_player extends Activity { protected void onCreate(Bundle savedInstanceState) {
[Code] .....
Where is the actual mistake because the app works fine until i click the button that is suppose to take me to the main player screen?
I am just trying to move a rectangle in a diagonal line. When the applet pops up, the rectangle is there but doesn't move. If I drag the sides of the applet to make it bigger or smaller the rectangle will redraw itself and move, but I want it to move without touching the window.
I am trying to only allow the user to input numbers. But I need to enter a number twice before it moves to the next line statement and also skips a line when i enter th number a second time.
How can I go around fixing this.
My code for this is
case 1: do{ Event event = new Event(); out.println("Please Enter the name."); event.setEvent(input.next()); input.nextLine();
I have a class that works only when in the default package. If I move the class to a package I receive UnsatisfiedLinkError.
This is the class in the default package(this works fine):
[code] public class CsharpConsumer { private native int reigsterAssemblyHandler(String str); public CsharpConsumer() { String dir = System.getProperty("user.dir"); System.load(dir+"dllscardJNICsharpBridge.dll"); int reigsterAssemblyHandler = reigsterAssemblyHandler(dir+"dllscard"); } } [/code]
If at the top of this class I add "package DLLUtils;"
the error is "Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError:
I have been following a 2d side scroller tutorial in java and have got the basics working, I changed the code a bit to make it so that the tiles and background are always moving, this worked as i intended.Within the character class:
if (speedX < 0) { centerX += speedX; } if (speedX == 0 || speedX < 0) { bg1.setSpeedX(0); bg2.setSpeedX(0);
[code]....
I wanted a way to make it so that if the character moves left, the tiles + background move slower. I am having issues with variable scope and setters/getters. Within the main game class, I have the code:
case KeyEvent.VK_LEFT: character.moveLeft(); character.setMovingLeft(true); break;
How can i include an if statement within the tile class that reads whether the character is moving left (determined from a keyPressed event in the main game class) and adjusts the speed of the tiles accordingly?I want to write something to the effect of:
try to make a game in this code i am trying to make the basics i have made a mouse it should move the game code is
import java.applet.Applet; import java.awt.*; public class Game extends gameLoop { public void init() { setSize( 854 , 480); Thread th = new Thread (this);
I've started creating a simple game in Java, but I'm still a beginner, so now I'm stuck. I wanted to make moving character by fast alternating arrow keys, but I don't know how. I can make a boolean variable, which disables moving by pressing the same key again, but the player can just hold the key and character is still moving. I thought about changing position of character when the key is pressed, instead of increasing speed, but then the movement wouldn't be smooth. I think this may sound incomprehensible, so I will add a link to game like an example of what I mean.
run: Exception in thread "main" java.lang.NullPointerException at swingdesing.Game.buffer(Game.java:32) at swingdesing.Game.moveBall(Game.java:27) at swingdesing.Game.main(Game.java:51) BUILD SUCCESSFUL (total time: 9 seconds)
And we have a class that draws a rectangle of 10 pixel height and 10 pixel width at 0,0 coordinates.
And we want to move with the arrows the rectangle but not to go off the frame.
The question is:
How can I do that if I draw another rectangle, it knows where is the other object and they not collapse. And so on, they move, but not collapse, just touch and stop.