Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
My game Art of Deflection was released back in June 2009 and even though I do no marketing or exposure whatsoever now I still get about 2 sales a day, sometimes higher on the weekends. Overall I think I've made at least $700-800... unfortunately iTC Mobile (which is a fantastic app) only goes back 26 weeks so I don't have all of the numbers right in front of me. The first-day sales for releases and updates were lower than I expected, and there was a long time when I was getting no sales or maybe 1 or 2 a week but it's pretty steady lately. Steadily low, but steady.

And from what I can tell, I haven't had any bad experience with pirated copies... Googling the game brings up a cracked version, and I tried to obfuscate my anti-piracy measures as much as possible, but I haven't seen any crazy amount of players on OpenFeint that would suggest a pirated version. I don't have a jailbroken device so I can't say for certain if my anti-piracy measures worked. If not, then I hope it at least kept the crackers busy.

Adbot
ADBOT LOVES YOU

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

skidooer posted:

Edit: Turns out bad data was being copied to the device, but not the simulator. It wasn't the drawing routines at all. Though I am still curious if there are any OpenGL gotchas between the simulator and the actual device.

Perhaps the best thing you can do is not assume any sort of OpenGL state coming into your drawing code... if you need something to be enabled, do it explicitly. Since changing OpenGL states can be expensive, you can put together your own set of flags for each OpenGL state you want to use, and keep track of state there, only calling OpenGL when something needs to be changed. Just reset all of our states to an initial value first to make sure your flags are jiving with what's in OpenGL.

I have a cross-development framework I developed where I do the bulk of the work on Windows (Visual Studio is so nice compared to Xcode) and of the times I see differences in rendering between the device and my GeForce GS250 or whatever it is, I know that I'm not setting a state correctly. I'm still doing stuff with OpenGL ES 1.1 now, but I figure it's going to be more complex keeping things the same with 2.0 with the difference in shader capabilities and such.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

Yodzilla posted:

...

The commented out sections are where I'd like to assign a variable to that connection to be used in the didFinishLoading section. Is there any way to do this or am I just going about this all wrong?

It seems to me that the SO article is setting a variable to the "self" object and then passing "self" as the delegate, so then the didFinishLoading method is just doing something to the variable owned by that delegate. It doesn't seem to be setting a variable to the connection object itself.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

Small White Dragon posted:

I know it represents a shrinking portion of the market, but I'm kind of bummed that XCode 4.5 doesn't support armv6.

I did some Googling and found this blog that describes a way to compile armv6 with 4.5. It basically involves copying the iOS 5.1 SDK from an older version of Xcode and fiddling with the build settings, like typing in certain things manually since Xcode doesn't have a dropdown selection for them. In these projects you can build armv6/7 instead of armv7/7s (there's no way to do armv6/7/7s)

http://blog.chpwn.com/post/31824877081

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Does a 3.5" iPhone app appear stretched on the 4" screen or are there black bars, letterbox movie style? What would a game look like?

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
I have an iOS app project that has a dependency on a static library project (this is Xcode 4.4). Everything compiles, links and deploys to a device just fine when I go from a clean build, but the problem I have is that if I want to make a change to one of the static library's sources (and not any of the app sources) and then run, it compiles but doesn't deploy to the device again. In order for my changes to deploy, I have go from a clean build. Is there some sort of build setting that I'm not seeing that would allow this to happen? I have "Skip Install" set to No for both the library and app (I do have it set to "Yes" for the app in my Distribution build though). My app project's linker flags are "-ObjC -l<static library>"

If I can get this figured out, there'll be no more compile coffee breaks for me! Actually it's not terribly long it's just still a productivity bottleneck.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

Doc Block posted:

You shouldn't have to manually add them in the linker flags. Add their xcode projects as dependencies, then go into your app target's build settings under the Build Phases tab, and add the libraries in the Link Phase.

That way changing the library sources will also cause your app to be relinked.

Holy crap you are a GENIUS! :)

Edit: If I have a custom key in my Info.plist, is there any way to create a "human readable" version of the key like in the default set of keys?

HiriseSoftware fucked around with this message at 05:25 on Nov 15, 2012

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

Doc Block posted:

The new iOS 6 autorotation methods don't get called if your app's deployment target is anything earlier than iOS 6.

So really we don't have to worry about these new methods unless our app is iOS 6-only? Does the same go for the Game Center API changes? I spent a lot of trial-and-error time trying to get both of those working correctly for < 6 devices in my game framework, and I would hate to do that all over again. As long as I can support the iPhone 5 screen AND still only use the < 6 methods, I'd be happy.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

HaB posted:

Is there some sort of Collection object in Obj-C that maintains insertion order?

An equivalent to SortedDictionary in C#?

How about keeping an array of keys that match to the keys in your dictionary (e.g. you remove a key from the dictionary, you remove it from the array), and then just iterate over that array and pick out the objects from the dictionary that way?

Doing some research, I think that is what http://www.cocoawithlove.com/2008/12/ordereddictionary-subclassing-cocoa.html does.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

Toady posted:

The Objective-C mailing list is arguing again, this time about replacing BOOL with C99 bool. Is there any way to do that which wouldn't break backwards compatibility?

The answer is YES. Or, uh, maybe NO. It could also be true though. Or false.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
How would one illustrate a consumables purchase in a screenshot? Show a "Congratulations you bought 100,000 smurfberries, sucker!" or a before/after currency counter?

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Has anybody ever had any experiences with weird orientation rotation behavior when using presentViewController in 6.1? I'm making changes to my Game Center code to support 6.1 and the dashboards that come up show a strange rotation, like things are shifting into place and not rotating. This is when using the modalPresentationStyle=UIModalPresentationCurrentContext to show my game screen underneath when the transition occurs. If I use the default modalPresentationStyle, the background is black as Game Center moves into place, but the dashboard rotates just fine. Plus, I'm forced to do my own transition animation because using presentViewController with animated=YES actually DOESN'T animate it (dismissing it does animate though). Everything was working fine before 6.0. I do some custom things for rotating my game screen view (getting device orientation notifications, animating manually, etc) so I'm thinking maybe that's the culprit but I try Googling about this strange rotation behavior and of the two places I've seen it mentioned nobody can give a solution.

I might end up creating a new view controller which doesn't do any custom rotation, attach a snapshot of my game to a view on that, set that as the root controller, and have Game Center present from that.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Is there any way to render a UIRemoteView into a UIImage? Calling renderInContext on the local view doesn't make it show up.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Here's a Stack Overflow answer about it that combines Xcode 4.4 and Xcode 4.5+ to build an executable that includes v6, v7, and v7s:

http://stackoverflow.com/questions/12619124/how-to-support-both-armv6-and-armv7s-for-release-build-in-xcode-4-5

There's another answer elsewhere that has you copy the iOS 5.0 SDK from Xcode 4.4 to your Xcode 4.5+ and from there you can build v6 and v7 but not v7s, and you can't build against the 6.0 SDK.

http://stackoverflow.com/questions/12463195/xcode-4-5-and-ios-4-2-1-incompatibility/13061562

I have tried neither myself, but that's a good place to start I think.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

lord funk posted:

Since updating to Xcode Beta 5, I've been getting this log every time I scroll something (for every scroll increment, no less):

code:
AssertMacros: queueEntry,  file: /SourceCache/IOKitUser/IOKitUser-920.1.11/hid.subproj/IOHIDEventQueue.c, line: 512
It's making my console pretty useless, and I have no idea what IOKitUser is or how to stop it.

There's a workaround to this at https://devforums.apple.com/thread/197966?start=0&tstart=0. Apparently a lot of people are having this problem. The workaround just quiets that particular message by hooking into fprintf but doesn't actually solve the issue.

Edit: Stupid period in URL

HiriseSoftware fucked around with this message at 02:00 on Aug 8, 2013

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Concerning iOS In-App Purchases, what's the best practices for dealing with receipt validation that fails because of some sort of network error, etc (i.e. if something was wrong on server side)? Should I not call finishTransaction: on the payment queue so that completeTransaction (and my verification) runs again? Should I store the receipt later and try to verify it again at some point in the future? At this point content hasn't been delivered, since I only want to do that unless I verify the receipt successfully.

On this page http://zoooot.com/732/my-experiences-with-verifying-in-app-purchase-receipts the author doesn't store failed receipts and just says to the user "Try your purchase again later, you won't be charged again" but that doesn't make sense to me for something like consumables. I left comments on his post asking for clarification, but I wanted to know what you guys think?

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

lord funk posted:

I've forgotten how to get symbols back up in Instruments. Since updating to beta 5 I've been getting this:


I just used this the other day:

http://stackoverflow.com/questions/5268041/xcode-4-instruments-doesnt-show-source-lines

Not sure if it'll work in Xcode 5, but hopefully it'll help.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
It sounds like you want GL_DST_COLOR, GL_ZERO to multiply the destination pixels by the mask pixels to darken the areas on the mask that are non-white. For that you don't need any alpha transparency in your mask (if I understand what you're trying to do anyway)

Edit: I think this would have been appropriate for either the 3D Graphics thread or the Game Development thread, since it's OpenGL which of course doesn't have to be 3D.

HiriseSoftware fucked around with this message at 18:43 on Aug 23, 2013

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

LP0 ON FIRE posted:

Thanks for your input. It's not working out right, partly because of how my Cocos2D is set up with transparency, and also I was thinking about this masking thing totally wrong. I thought you could just have one small square sprite placed on the screen and with some blending options make everything outside of it black and the white part show any sprites behind it.

What I think I need is that white sprite I posted earlier to mask out an area on a black rectangle sprite that covers the entire screen.

If you're trying to make the white sprite act as a "light source", if I understand correctly, I sent you a PM detailing a way to do it. Plus the way I typed things out originally might have been wrong anyway.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Is there an easy way to compile in x86_64 for use in the iOS Simulator "iPhone Retina (4-inch 64-bit)" so that I could see how my code works on a 64-bit processor? I understand it's not guaranteed to be the same as having an actual iPhone 5S, but I was curious. If I select that 64-bit simulator and compile, it still goes to i386.

Also, I have VFP and NEON assembly for doing matrix operations, should I expect that it won't work as is with 64-bit processors?

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
iCloud in games question - How are people supporting virtual currency and things that can be bought with them (items, upgrades, etc)? I want to assume everything is key-value, and I'd imagine non-consumable bought items are easy because you're just setting a Boolean to true once it's bought on any device, but how are conflicts resolved in currency value (e.g. Smurfberries) and bought consumables (e.g. usable boosts)? Do developers just not bother with those?

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
This "iCloud Keychain" thing, do I have to do anything differently when saving data using the keychain API to make it work with iCloud? Googling doesn't seem to be helping me answer that question.

Edit: vvvvv No wonder I couldn't find anything. Thanks!

HiriseSoftware fucked around with this message at 17:44 on Oct 23, 2013

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
If I use iCloud key-value storage in my app (everything setup, entitlements, etc) but don't listen for the NSUbiquitousKeyValueStoreDidChangeExternallyNotification, would I ever get those notifications at a later time? I'm trying to figure out how games allow you to disable/enable iCloud from within the app itself - what exactly are they disabling? There's no "initialization" of iCloud in the code per se, you just start listening for notifications. If I disable the notification observer, then decide to enable it later, will I get any notifications that occurred during that time where it was disabled? Or should I keep listening for the notification and just put that changed data aside until the user wants to sync again?

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

Ender.uNF posted:

If you don't listen for the notifications they are gone. Use it or lose it.

With a game, I'd imagine you read the current value on startup (if present) and check whether your local value is higher* and take the max. As you advance in the game, do the same, checking and storing the max. If iCloud is disabled, just use the local value. When it is enabled, just do the same max check again. People don't want to sit around and wait for sync so in theory you might miss a bit but when they finish the next level you might see some further levels unlocked since the changes were pulled while playing.

*Where higher is furthest level, most points, date last played, or whatever makes sense for your app.

It sounds like I should do the last question I posed then - keep listening for notifications but put the incoming data into a staging area to do that "max check" with later. If I disabled syncing in-app and completed level 1 locally, but still received a "level 3 complete" from a notification (because I had syncing enabled on another device and completed level 3 there), I should keep the "level 3 complete" somewhere else and only check it against the local data when I re-enabled syncing.

Should I still bother with URLForUbiquityContainerIdentifier (and whatever the similar thing is for 6.0) if I'm just using key-value storage, or is that more a document sync thing? Apple examples don't seem to care about it with regard to key-value.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
It seems to me that in the setCurrentRoomToValue method you need to copy the string to current_room with a new string object instead of just copying the pointers (or create a @property with "copy" and a custom get/set). Is this using ARC?

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Not sure if this would help anybody but I discovered an OpenGL ES mipmap generation bug for A7 devices (5S, etc). Apparently using the standard OpenGL calls to generate mipmaps with non-square textures is causing problems. I was wondering why my particle engine was spitting out particles that looked much different between my 5S and my 4... it was only in GLES 2.0 that this was a problem - 1.1 was fine. At first I thought it was shader precision (because there's a change in "lowp" for A7) and I was hashing the data going into glTexImage2D between the devices just to make sure the data was the same. There were fleeting moments that the particles looked correct so I turned off mipmapping and everything went back to normal. I googled for this and the only thing I found was a thread on TouchArcade that said someone had to fix a bug in their game because A7 mipmapping generation for non-square textures wasn't working:

quote:

Issue resolved. Obscure change in A7 64bit OpenGL ES implementation meant that any non-square texture could not get mipmaps generated with the normal OpenGL ES calls. Performing my own reduction solved the issue.

Apple's documentation had nothing about this issue.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

kitten smoothie posted:

I have no idea, for instance, if you'd be able to debug on a device through whatever USB bridging done by a VM.

You can in fact debug on a device connected by USB through VMWare. But yes, it will be lovely.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Edit: Wrong thread!

HiriseSoftware fucked around with this message at 06:27 on Jun 2, 2014

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Call glGetError() after every gl* call and see if it's failing anywhere on your working and your non-working devices. I use this macro:

code:
#if defined(DEBUG)
	#import <unistd.h>
	#import <signal.h>
	
	#define glCheckError() { \
		GLenum err = glGetError(); \
		if (err != GL_NO_ERROR) { \
			NSLog(@"OpenGL error: 0x%x in %s (%s:%d)", err, __PRETTY_FUNCTION__, __FILE__, __LINE__); \
			kill(getpid(), SIGINT); \
		} \
	} \
#else
	#define glCheckError()
#endif
I just call glCheckError() after every gl* call and if something generates an error, I'll know right away and it'll break into the debugger.

Once I got my 5S, my applications were acting funny so I had to check GL errors to see what was happening, I can't for the life of me remember what my fix was though. It might have been about unbinding array buffers at the end of each frame or something - something to do with resetting a binding back to 0.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Man gently caress this orientation-dependent bullshit on iOS 8. My view code for my educational game works just fine on < 8, but of course totally breaks on 8. My app is landscape, and I figured out how to get things to display correctly, but I have a problem with touches - with I get a TouchPhaseBegan touch, the touch coordinate is not correct - it's like the bounds of the view for the touches is rotated and the touch coordinates are on the border of the "view". Then when I get other events for the same touch, the touch coordinates are correct! I'm not sure kind of information it's using and what's changing between the Began phase and the others, but it's driving me nuts. I tried using "self" in locationInView, "nil", and a bunch of others, but nothing works.

Edit: VVVV It's my own engine but I just can't figure out why it's giving me wrong coordinates at the start of the touch but they're fine afterwards. I don't think I'm making any view changes between the two events. I was hoping it was a bug in the simulator when I first experienced it but I just updated my 5S and it's doing the same thing.

HiriseSoftware fucked around with this message at 03:32 on Oct 13, 2014

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

lord funk posted:

Don't use nil anymore for locationInView. iOS 8 changed the way the window bounds are calculated, so always do it in the view that fits your expected coordinates.

Oh believe me I've tried a bunch of things to pass into locationInView, but nothing seems to be working. I even created a standalone view to just receive touches (as opposed to the GL view), but that doesn't work either. Here's some of my debug output (with comments):

code:
[iOS Touch Event] *** UITouchesBegan ***
[iOS Touch Event] POPULATING EVENT
/* View hierarchy - locationInView and previousLocationInView both are always being passed "self" (for the ApplicationTouchView instance) */
ApplicationTouchView 0x16f8de70
-T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0 /* The view's transform, frame, and bounds */
  ApplicationView 0x16ea8720
  -T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
    UIWindow 0x16f7f360
    -T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
[iOS Touch Event] New touch (phase 0) 0 0: 72.50 320.00 -> 72.50 320.00 (0) /* Values returned by previousLocationInView and locationInView - the Y should not be 320.00 */
[iOS Touch Event] *** UITouchesMoved ***
[iOS Touch Event] POPULATING EVENT
ApplicationTouchView 0x16f8de70
-T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
  ApplicationView 0x16ea8720
  -T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
    UIWindow 0x16f7f360
    -T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
[iOS Touch Event] Updated touch (phase 1) 0 16f98ff0: 72.50 320.00 -> 72.50 530.00 (17472080) /* Here the value returned by locationInView is the expected XY */
[iOS Touch Event] *** UITouchesEnded ***
[iOS Touch Event] POPULATING EVENT
ApplicationTouchView 0x16f8de70
-T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
  ApplicationView 0x16ea8720
  -T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
    UIWindow 0x16f7f360
    -T=(1.00 0.00 0.00 1.00 0.00 0.00) F=(0.00 0.00 320.00 568.00) B=(0.00 0.00 320.00 568.00) Clip=0
Updated touch (phase 3) 0 16f98ff0: 72.50 530.00 -> 72.50 531.00 (17472080) /* Here the XYs returned are correct */

Edit: If there are just UITouchPhaseBegan and UITouchPhaseEnded for the touch, for example the first phase would be 72.50 320.00 -> 72.50 320.00 and the last phase is 72.5 320.00 -> 72.50 530.00

HiriseSoftware fucked around with this message at 15:12 on Oct 13, 2014

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

Doc Block posted:

How exactly are you detecting the touches? Something other than -touchesBegan... etc. ? Also, the fact that it's reporting your view as being 320x568 instead of 568x320 might be part of your problem.

Anyway, I made a little test app, and it doesn't exhibit any touch weirdness despite being landscape-only;

No, I use touchesBegan. I'm starting to rethink all of my view/orientation code for iOS8 and start from scratch because what I was doing for pre-8 was kinda hacky and lot of trial and error (mostly because I just didn't understand it) but it worked great. There's probably something fundamentally wrong with what I'm doing with regards to 8, it's just weird that it reports a wrong touch location and THEN the correct one, even seemingly with the width/height in the wrong place. In addition to this problem I discovered issues with modal views appearing correctly (e.g. Game Center dashboards) so I think starting over will be best. Thanks for the help though! I'll take a look at your test when I have a moment.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
I resolved my issue(s). Like I said, I basically threw out all the hacky stuff that I did for <= 7.0 and let iOS take care of lot of orientation handling and it's been working well. I'll still keep the <= 7.0 stuff for legacy though, just because it already works.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.

HaB posted:

This. So Much This.

I made the jump from the .NET side about 3 years ago, and I was a little startled at xcode's debugger not having some of the most basic features of Visual Studio. Having to NSLog all over the place to see what values are being tossed around makes me feel like I'm writing javascript in 1999 and putting alert() everywhere.

poo poo, I thought Xcode debugging issues was just something that was wrong with my setup and didn't know that it was an epidemic. I'm like "eh, I can't see what's in this NSDictionary, but it's probably something I'm doing wrong" but I guess not.

Visual Studio's STL compile error messages are so incredibly cryptic, but the fact that the debugger lets me see everything in the containers is more than enough consolation.

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Please clarify for my own sanity regarding iTunes Connect and screenshots - I'm using Safari on OSX, and the order that I'm uploading them is the REVERSE of how they would appear on the store, correct? Each next upload is placed to the left of the previous screens, so it makes sense to me that I'd have to rearrange them manually to how I'd want them to look. Googling is not entirely clear on this.

Adbot
ADBOT LOVES YOU

HiriseSoftware
Dec 3, 2004

Two tips for the wise:
1. Buy an AK-97 assault rifle.
2. If there's someone hanging around your neighborhood you don't know, shoot him.
Is there any way to detect if there are "too many" touches on the device? I know that the iPhone supports 5 touches and the iPad has 11. I've got a soon-to-be-released kids app and of course my 3-year old finds a bug when he puts too many fingers on the screen. For example, on the iPhone, if I put 5 fingers on the screen at once, I get a bunch of e.g. touchesBegan events. If I keep those fingers down and put down one more, I get no events at all (not even touchesCancelled). I've been looking at functionality of some games and I see that they somehow detect that there's been a 6th touch and do things like reset "button is pressed" states, which would be perfect. If there's some other notification or event that I need, I can't seem to find it.

Edit: Ok well it seems that I spelled it "touchesCanceled" and not "touchesCancelled" in the code so that's probably what's going on. Doh!

HiriseSoftware fucked around with this message at 05:56 on Dec 15, 2014

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply