Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (133)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Loading resources from a library class?  (Read 728 times)
0 Members and 1 Guest are viewing this topic.
Offline satrugha

Junior Newbie





« Posted 2013-09-09 21:25:31 »

So I'm starting back into Java and it's been awhile since I've done asset management on something not android. I've done some google-fu and haven't quite found an answer to my problem.

I'm writing a modular game library. My graphics section is in a lib project called core. My main game is in it's own project. I want to be able to send a url for an img in my game project folder to the image class in my core.

Here's my setup:


So the last time I had to load an image in pure java was when swing was still considered new. There are noticeably more functions to load something than I know what to do with, and none of them seem to work atm.

My current code:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
   public void loadSpriteFromLocation(String relativeLocation)
         throws IOException
   {
      try
      {
          //URL url = new URL(getCodeBase(), relativeLocation);
         URL url = ClassLoader.getSystemResource(relativeLocation);
         System.out.println(url.toString());
         
          sprite = ImageIO.read(url);
         
          System.out.println("Image successfully loaded");
      }
      catch (IOException e)
      {
         throw e;
      }
   }


url = null. (the commented out function won't even compile). http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html#getresource is pretty good at showing resource locations but it doesn't help me if I'm trying to load from a separate module from where the image is located.

Ideally, I want to be able to load from an executable jar file, but I also want something that's easy to work with or perhaps a method where I could test the jar first then go locally if need be. (even more ideally, I'd love to write a resource manager that works like the android resources (if that's really even possible), but I need to start somewhere first)

What am I missing here? Do I need to write a resource builder for this? (because I'm probably going to run into the same problem for the sound)

Any help is appreciated!
Offline satrugha

Junior Newbie





« Reply #1 - Posted 2013-09-09 21:37:00 »

Haha, I think I got this working:
1  
2  
3  
InputStream stream = this.getClass().getClassLoader().
                    getResourceAsStream(relativeLocation);
         sprite = ImageIO.read(stream);


Though I haven't tried working with executable jars yet.
Offline ags1

JGO Wizard


Medals: 75
Projects: 3
Exp: 5 years


Make code not war!


« Reply #2 - Posted 2013-09-09 21:39:56 »

I use the slightly different (to load texts in my case):

        InputStream in = Utils.class.getResourceAsStream(textPath);

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #3 - Posted 2013-09-09 22:35:59 »

Your 'img' folder is not on the classpath. To add it, right click the folder, open Build Path submenu, and click on "Use as source folder". After this, the contents are now top-level files, so you can call getResourceAsStream("/daisy.gif");

Offline jonjava
« Reply #4 - Posted 2013-09-10 08:55:14 »

Is it me or has this question been asked and answered 2 times already in the last 30 days? And why is this in the Java2D subforum? :V

http://www.java-gaming.org/topics/having-an-issue-loading-text-files/30433/msg/281026/view.html#msg281026
http://www.java-gaming.org/topics/loading-a-bufferedimage/30470/msg/282671/view.html#msg282671

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (37 views)
2014-12-15 09:26:44

Mr.CodeIt (31 views)
2014-12-14 19:50:38

BurntPizza (62 views)
2014-12-09 22:41:13

BurntPizza (99 views)
2014-12-08 04:46:31

JscottyBieshaar (60 views)
2014-12-05 12:39:02

SHC (74 views)
2014-12-03 16:27:13

CopyableCougar4 (77 views)
2014-11-29 21:32:03

toopeicgaming1999 (138 views)
2014-11-26 15:22:04

toopeicgaming1999 (127 views)
2014-11-26 15:20:36

toopeicgaming1999 (38 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!