Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - letmethink

Pages: 1 2 3 ... 5
1
Extensions / Some sort of zooming extension
« on: February 14, 2017, 12:29:23 pm »
Basically I've built a zooming extension that needs some testing. I need some suggestions for blocks to add (I'm already planning on one so you can turn on zooming for the hud, but for now the default is off).

There are 4 blocks so far:
set zoom (obvious)
zoom (grabs the current zoom)
base zoom (for if you start scaled in full screen and it isn't 1)
draw on HUD (allows you to draw text unzoomed)

This extension doesn't work with flash or html5, but with everything else you should be able to properly zoom in and out. If there are any problems, let me know and I'll try to fix them.

2
Extension Ideas / Breaking concave shapes (collision perhaps).
« on: March 31, 2016, 02:25:47 pm »
I'm sticking this in extension ideas since I'm solving this problem in Java, and could potentially expand it into something more. I am not particularly experienced in Java, but that makes it a learning experience. I decided that I wanted to program a way to split a given concave polygon (for it to be a polygon I am viewing that it means none of its lines cross for now) into multiple convex polygons which join together to make that one concave polygon (but can be used for collision engines).

If I allowed shaped to be cut along the edges (as opposed to just along the vertices), then in Box2D, clipping would occur. This is when two objects catch along an apparently straight line in the joins in collision boxes (since Box2D doesn't have pixel perfect collision). Therefore, I want to cut shapes by their vertices.

Currently my algorithm I have come up for this is something like this. I take a concave polygon. I will use this one as an example:

Once I have this shape I iterate through each of the points, marking it if the angle at it is reflex (more than 180 degrees). For the example shape, this leave me with this:

Next comes a quite complicated part. For each of those points (if there are none I just return the shape), I check how many points I can go in either direction until I either reach a reflex angle, or the angle from that point through the point to the next point is more than 180 degrees. This can be marked on our shape like this (dark blue is point, light blue is points one way and brown is the points the other way).

When I have this, I identify which of these gives me the most points in a shape and chose that one. In the case of the example, there are two choices we can make (the brown on the first and the third), so we chose the first one. We then seperate these points from the shape to make a new shape:

Once we have done this we take the new shape formed and repeat the process.

We count the reflex angles:

We check for both of them:

We pick one and split it.

And then we do the same with the next shape:


Finally, we are left with a shape that has no reflex angles so we end with our shape broken up.



As of speaking, I have written a program to do this in Java, but without any visual interaction (you literally input a list of numbers representing a shape), so next part to work on is displaying an input and an output. So far this project has been very enjoyable.

3
Shared Resources / Grid filling line drawing thingamajig
« on: March 20, 2016, 01:52:04 am »
Hey all,

I'm not sure how use useful this will be for anyone, but I thought I might share since I found making this fun. Basically, you input an array, and this function will return one option for the lines required to cover this full array in the format of [rows, columns]. I have used it for a programmatic implementation of the Hungarian algorithm, and I thought I should share this part of it.

Below is an interactive demonstration of it working. (click to generate a new grid).

<a href="http://static.stencyl.com/games/33834-0.swf" target="_blank" class="new_win">http://static.stencyl.com/games/33834-0.swf</a>

Code: [Select]
function clone(source:Dynamic)
{
    var myBA:ByteArray = new ByteArray();
    myBA.writeObject(source);
    myBA.position = 0;
    return(myBA.readObject());
}

public function getSolution(grid:Array<Array<Int>>): Array<Array<Int>>
{
grid = clone(grid);

var count = 0;
var count2 = 0;
var valid = false;
var found = false;
var columns:Array<Int> = new Array();

var myValid = true;
var myValid2 = true;

for (e in 0...grid.length) columns.push(0);
var rows:Array<Int> = new Array();
for (e in 0...grid[0].length) rows.push(0);

count2 = 0;
for (row in grid)
{
count = 0;
for (item in row)
{
if (item == 0)
{
found = true;
myValid = true;

var count3 = 0;
for (row2 in grid)
{
if (row2[count] == 0 && count3 != count2)
{
myValid = false;
break;
}
count3 += 1;
}

var count3 = 0;
myValid2 = true;
for (item2 in grid[count2])
{
if (item2 == 0 && count3 != count)
{
myValid2 = false;
break;
}
count3 += 1;
}
if (myValid || myValid2)
{
valid = true;
break;
}
}
if (valid) break;
count += 1;
}
if (valid) break;
count2 += 1;
}

while (found)
{
if (!valid)
{
myValid = true;
myValid2 = true;
count2 = 0;
for (row in grid)
{
count = 0;
for (item in row)
{
if (item == 0)
{
valid = true;
}
if (valid) break;
count += 1;
}
if (valid) break;
count2 += 1;
}
}
else
{
if (myValid && myValid2) myValid2 = false;
}

if (myValid)
{
rows[count2] = 1;
count = 0;
for (item in grid[count2])
{
if (item == 0)
{
grid[count2][count] = -1;
}
count += 1;
}
}
if (myValid2)
{
columns[count] = 1;
count2 = 0;
for (row in grid)
{
if (row[count] == 0)
{
grid[count2][count] = -1;
}
count2 += 1;
}
}

found = false;
valid = false;
count2 = 0;
for (row in grid)
{
count = 0;
for (item in row)
{
if (item == 0)
{
found = true;
myValid = true;

var count3 = 0;
for (row2 in grid)
{
if (row2[count] == 0 && count3 != count2)
{
myValid = false;
break;
}
count3 += 1;
}

var count3 = 0;
myValid2 = true;
for (item2 in grid[count2])
{
if (item2 == 0 && count3 != count)
{
myValid2 = false;
break;
}
count3 += 1;
}
if (myValid || myValid2)
{
valid = true;
break;
}
}
if (valid) break;
count += 1;
}
if (valid) break;
count2 += 1;
}
trace(grid);
}
return [rows, columns];
}

4
Windows / Mac / Flash / HTML5 / Hearty's Quest (Ludum Dare 34)
« on: December 13, 2015, 02:33:23 pm »


I'm here to introduce my final entry for Ludum Dare 34. I spent around 15-20 hours working on this game, and while it isn't my favourite of my Ludum dare entries, I'm happy with how it looks, and I don't dislike the gameplay, I just feel it could be faster and more varied (I ran out of interesting ideas hence the lack of variation).

Since you probably are only here to see cool gifs, here are some of the gameplay.



Here's another


5
Game Ideas / Interesting random generation thingy
« on: November 16, 2015, 01:37:53 pm »
I haven't had time to do muc recently, but I thought I ought to do something for Procjam (obviously not a full game), so I made this little demo thing (that you can now remove blocks from). Here it is. (z to refresh)

<a href="http://lmtproductions.weebly.com/uploads/2/0/7/9/20793336/asset_assembler.swf" target="_blank" class="new_win">http://lmtproductions.weebly.com/uploads/2/0/7/9/20793336/asset_assembler.swf</a>

I may post how I did what I did at some point (but not right now).

6
Extensions / Workflow utility engine extension
« on: October 31, 2015, 10:15:55 am »
Workflow utility
Works on iOS, Android, Flash, Windows and Mac.

This extension is a simple extension which I put together to add a couple of (I think) useful blocks, and to group other blocks together to improve workflow (and to slow the time it takes to change simple blocks).

Features
- Grouped simple mathematical operations
- Grouped numerical comparisons
- Index of item in list
- Random float between two numbers



Get it

- Download this Extension

(How to Install and Update an Extension)


Documentation

This extension currently contains four blocks. You can see the details of what they do below.
----------------------------------------------

Add, subtract, multiply or divide two numbers
This block can be used instead of the current (4 separate) blocks for performing simple mathematical operations.



Inputs
- First number
- Operation (selected from the dropdown)
- Second number

Returns
The result of the operation between the two chosen numbers. This is a numerical value.


Determine the relationship between two numbers
This block can be used instead of the current blocks for comparing two numbers.



Inputs
- First number
- Comparison (selected from the dropdown)
- Second number

Returns
The result of the comparison between the two chosen numbers. This is a boolean


Random float between two numbers
Currently Stencyl only has a block for a random float between 0.0 and 1.0. This block extends that so that any range can be chosen.



Inputs
- First number
- Second number

Returns
A random float between the two chosen numbers.


Index of value in list
Currently Stencyl has a block for returning the index of a value in a string, but none for this with a list. This adds this functionality.



Inputs
- Value. This can be anything
- List. This is a list attribute

Returns
The index of the block. If -1 is output, then the list doesn't contain the value.

----------------------------------------------


Version History

10/31/2015 - Version 0.1 released.
11/31/2015 - Version 0.1.1 released - fixes a bug with '='

7
I've searched quite a bit and I can't find where the collision listener event is triggered as they aren't triggering in html5. I can't fix this as I don't know where to make changes.

Thanks, Letmethink

8
I got bored today so began to modify the engine to get something to export to html5. I think haven't got gravity working yet although it may be an overly large collision - debug draw needs modifying.

Click here for some basic rendering and left and right controls:

http://www.newgrounds.com/projects/games/896135/preview

I will probably have more fun later and fix more stuff.

9
Ludum Dare 33 / Love at first sight
« on: August 23, 2015, 04:51:12 pm »
I wasn't going to enter this LD, but got inspired 4 hours before the compo deadline. looks like I'll be entering the jam, but at least this should be reasonably fun. For now, a screenshot:



Note: In the above, letting the characters reach each other may be a bad decision.

Play the finished game here

10
Fixed Bugs (3.x) / Unexpected error with fonts when creating a gradient
« on: August 14, 2015, 01:54:14 pm »
When creating a font and selecting one of the colours to be 'none', the unexpected error shown below is produced. Using build 8502:
Code: [Select]
Unexpected problem on thread AWT-EventQueue-0: Colors cannot be null
java.lang.NullPointerException: Colors cannot be null
at java.awt.GradientPaint.<init>(Unknown Source)
at stencyl.sw.editors.font.FontPage$FontPreviewPane.refresh(FontPage.java:1208)
at stencyl.sw.editors.font.FontPage.refresh(FontPage.java:1166)
at stencyl.sw.editors.font.FontPage$RefreshListener.run(FontPage.java:234)
at stencyl.sw.editors.font.FontPage$RefreshListener.actionPerformed(FontPage.java:203)
at com.jidesoft.combobox.AbstractComboBox.fireActionEvent(Unknown Source)
at com.jidesoft.combobox.AbstractComboBox.setSelectedItem(Unknown Source)
at com.jidesoft.combobox.AbstractComboBox.setSelectedItem(Unknown Source)
at com.jidesoft.combobox.AbstractComboBox$3.itemStateChanged(Unknown Source)
at com.jidesoft.combobox.PopupPanel.fireItemStateChanged(Unknown Source)
at com.jidesoft.combobox.PopupPanel.setSelectedObject(Unknown Source)
at com.jidesoft.combobox.PopupPanel.setSelectedObject(Unknown Source)
at com.jidesoft.combobox.ColorChooserPanel.setSelectedColor(Unknown Source)
at com.jidesoft.combobox.ColorChooserPanel$e_.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Reproduction steps:

  • Create new font
  • Switch to the colour pane
  • Set the first colour to be 'none'
  • Set the gradient colour to anything
  • Observe the error

I would expect the first colour to be unable to be set to 'none'

11
When trying to delete frames from an animation with 0 frames initially the unexpected error below is produced. Using build 8502
Code: [Select]
Unexpected problem on thread AWT-EventQueue-0: 0
java.lang.ArrayIndexOutOfBoundsException: 0
at stencyl.sw.editors.actor.appearance.AnimationPane.removeFrames(AnimationPane.java:751)
at stencyl.sw.editors.animation.AnimationEditor$2.actionPerformed(AnimationEditor.java:138)
at javax.swing.JComponent$ActionStandin.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Reproduction steps:

  • Select an actor and access an animation with 0 frames
  • Click on the pane around where it says 'Click here to add a frame'
  • Press the 'Delete' key
  • Observe the unexpected error produced

i would expect nothing to happen and for no error to be produced.

12
Fixed Bugs (3.x) / Unexpected error when deleting backgrounds
« on: August 14, 2015, 01:44:19 pm »
When you have a background with 0 frames and try to delete a frame, the error below is produced. Using build 8502.

Code: [Select]
Unexpected problem on thread AWT-EventQueue-0: 0
java.lang.ArrayIndexOutOfBoundsException: 0
at stencyl.sw.editors.background.BackgroundPage.removeFrames(BackgroundPage.java:1081)
at stencyl.sw.editors.animation.AnimationEditor$2.actionPerformed(AnimationEditor.java:138)
at javax.swing.JComponent$ActionStandin.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Reproduction steps:

  • Open a background and remove all the frames (it doesn't need them)
  • Click in the left column below where it says 'Click here to add a frame'
  • Press the key 'Delete'
  • Observe the error produced

I would expect for this to do nothing and simply not attempt to delete anything.

13
After reopening a tileset and selecitng a tile that you just deleted, an unexpected error is produced and is detailed below. Using build 8502.

Code: [Select]
Unexpected problem on thread AWT-EventQueue-0: null
java.lang.NullPointerException
at stencyl.sw.util.gfx.ImageUtil.downsize(ImageUtil.java:246)
at stencyl.sw.editors.animation.AnimationEditor$CustomRenderer.getListCellRendererComponent(AnimationEditor.java:617)
at javax.swing.plaf.basic.BasicListUI.paintCell(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at stencyl.sw.editors.animation.AnimationEditor.paintComponent(AnimationEditor.java:266)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at java.awt.Window.paint(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$700(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Reproduction steps:

  • Delete a tile from a tileset using the delete key
  • Immediately close the tileset
  • Reopen the tileset and then select the tile you deleted
  • Observe the error produced

I would expect this to produce no error and simply work as normal by selecting the tile and doing nothing else.

14
Bug Archives / Unexpected error when editing a tileset
« on: August 14, 2015, 01:28:18 pm »
When having multiple tiles selected and attempting to create a polygon, an unexpected error is produced:
Code: [Select]
Unexpected problem on thread AWT-EventQueue-0: null
java.lang.NullPointerException
at stencyl.sw.editors.tileset.TileEditPane.getCurrentTileImage(TileEditPane.java:977)
at stencyl.sw.editors.tileset.TilesetPage.getCurrentTileImage(TilesetPage.java:1015)
at stencyl.sw.editors.tileset.ShapeChooserPanel$2.actionPerformed(ShapeChooserPanel.java:245)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at com.jidesoft.plaf.vsnet.VsnetMenuItemUI.doClick(Unknown Source)
at com.jidesoft.plaf.vsnet.VsnetMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Reproduction steps:

  • Access a tileset (any with more than 1 tile will do)
  • Select multiple tiles by dragging
  • To the left of the collision bounds is a '+', click this
  • Select 'create polygon'
  • Observe the unexpected error

I would expect this to work exactly as it does with only one tlie selected.

15
When you attempt to add a polygon collision shape to an animation that has no frames (and is therefore size 0), an error is produced when using build 8502.
Code: [Select]
Unexpected problem on thread AWT-EventQueue-0: null
java.lang.NullPointerException
at stencyl.sw.editors.actor.collision.ShapePane.actionPerformed(ShapePane.java:172)
at stencyl.sw.actions.SAction.actionPerformed(SAction.java:121)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Reproduction steps:

  • Open an actor (or create a new one)
  • Create a new animation for this actor and don't add any frames to it.
  • Turn to the collision pane of the actor
  • Attempt to add a polygon collision shape for the animation
  • Observe the error produced

I would expect either this to be consistent with the other shapes and allow you to add them, or to inform you that you cannot add collision shapes to animations of size 0.

Pages: 1 2 3 ... 5