Hi !
Featured games (85)
games approved by the League of Dukes
Games in Showcase (636)
Games in Android Showcase (178)
games submitted by our members
Games in WIP (686)
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  
  Image clipping  (Read 1804 times)
0 Members and 1 Guest are viewing this topic.
Offline 2DGamer

Senior Newbie

Java games rock!

« Posted 2004-07-03 09:42:11 »

Hi all,

First time poster. Just wanted to ask a quick question about sprite animation and clipping.  Up until now I've been using
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)

to draw the correct part of the sprites image, but I've recently made the transition from int to double when storing my sprites position so it doesn't really work anymore.

Now I've started using CropImageFilter, so when I create a sprite that has more than one frame I split the image into an image array and use this bit of code:
public void draw(Graphics2D g)
            // Draw the sprite if it isn't hidden
            if (m_image != null && !m_bHidden)
                  // Draw the appropriate frame, if necessary
                  // m_at == AffineTransform
                  if (m_iNumFramesX == 1)
                        g.drawImage(m_image, m_at.getTranslateInstance(m_rcPosition.x, m_rcPosition.y), null);
                              m_at.getTranslateInstance(m_rcPosition.x, m_rcPosition.y), null);

Now this works but in the game I'm working on right now I change a sprites image based on certain game events and when this happens I create a new image array and crop the appropriate image into it. This works just fine locally but when I play the applet over the web I get a half a second freeze when this happens.

I've been trying to use setClip(...) now to draw just the part of the current image that I want but I just can't seem to figure out just how exactly it works :p so any help would be appreciated (regarding setClip or any better way to get the part I want). Oh and if it is of any interest, the Graphics2D object the sprite's draw method receives is from the volatile image I use as a back buffer.
Offline oNyx

JGO Coder

Medals: 2

pixels! :x

« Reply #1 - Posted 2004-07-03 09:59:56 »

>I've recently made the transition from int to double when
>storing my sprites position so it doesn't really work anymore.

You can still use that method if you like. Y'know you can just cast (or correctly round) those doubles (or floats) to int.

>when this happens I create a new image array

Why? Crop it once and reuse it.

弾幕 ☆ @mahonnaiseblog
Offline 2DGamer

Senior Newbie

Java games rock!

« Reply #2 - Posted 2004-07-03 12:32:57 »

Guess I could cast the double values. In fact that's what I've been doing but it seemed to defeat the purpose of using double to store the position only to cast them back to int when drawing the sprite (though I guess any precision lost would be far from noticeable:) ).

I made a new image array because as it turned out the different images did not have an equal amount of frames.
Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

Dwinin (63 views)
2015-11-07 13:29:08

Rems19 (77 views)
2015-10-31 01:36:56

Rems19 (69 views)
2015-10-31 01:32:37

williamwoles (103 views)
2015-10-23 10:42:59

williamwoles (91 views)
2015-10-23 10:42:45

Jervac_ (105 views)
2015-10-18 23:29:12

DarkCart (132 views)
2015-10-16 00:58:11

KaiHH (114 views)
2015-10-11 14:10:14

KaiHH (153 views)
2015-10-11 13:26:18

BurntPizza (167 views)
2015-10-08 03:11:46
Rendering resources
by Roquen
2015-11-13 14:37:59

Rendering resources
by Roquen
2015-11-13 14:36:58

Math: Resources
by Roquen
2015-10-22 07:46:10

Networking Resources
by Roquen
2015-10-16 07:12:30

Rendering resources
by Roquen
2015-10-15 07:40:48

Math: Inequality properties
by Roquen
2015-10-01 13:30:46

Math: Inequality properties
by Roquen
2015-09-30 16:06:05

HotSpot Options
by Roquen
2015-08-29 11:33:11 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‑
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!