Back and play buttons in the code editor are still a bit hit-and-miss for me.
Very noticeable lag/freezing when opening, closing, or running a project. (I also tend to press buttons that haven't updated to be visible while the screen is frozen.)
Just noticed a few cases where the old Codea logo (from iOS 6) is being used:
When you link Dropbox
In the icon for the Shaders example
(In different colors) the backgrounds of the icons for some of the built-in sprite packs
Okay, very confusing glitch I'm having here. I was testing to see if you could saveImage() and overwrite an example project's icon, and I was looking to see if I could find one with an icon that was easy to recreate (in case if I changed the icon so I could change it back). I came across the image IO's example and went to work seeing if I could just sprite() together the icon. However, I encountered that whenever I sprited logo into an image it stopped anything drawing on the screen. Code:
-- In this demo we're going to explore the new image features
--
-- Here's what we will look at
-- 1. Saving an image as a sprite (into your Documents sprite pack)
-- 2. Downloading an image and displaying it
-- 3. Reading an image from a sprite pack
-- 4. Listing the images in a sprite pack
-- Note that you can also use Dropbox to import assets into Codea
-- To do this please set up your Dropbox account from the project
-- browser (tap the settings icon). Or you can set up Dropbox from
-- the sprite picker in this editor. Once it is setup you may save
-- and read from the "Dropbox" sprite pack. In order to sync your
-- data you must open the sprite picker and choose "Sync" from the
-- Dropbox sprite pack menu.
function setup()
----------------------------------------------------
-- 1. We'll call the makeCircleImage function (defined below)
-- to create an image and save it to
-- your Documents as "ExampleCircle"
local img = makeCircleImage()
saveImage( "Documents:ExampleCircle", img )
-- Once you've run this code come back here and tap
-- the blue highlight above to verify the image is in
-- your Documents
---------------------------------------------------
---------------------------------------------------
-- 2. Now we'll download our logo into an image
logo = nil -- it's empty for now
-- Start the request, didGetLogo is our callback function
http.request( "http://twolivesleft.com/logo.png", didGetLogo )
---------------------------------------------------
---------------------------------------------------
-- 3. Now we'll read the image we saved above back out
-- Note: you can read images from any sprite pack,
-- including the built in ones
circleImage = readImage( "Documents:ExampleCircle" )
---------------------------------------------------
---------------------------------------------------
-- 4. Now let's list the images in Documents
print("Sprites contained in 'Documents'")
local list = spriteList( "Documents" )
for _,v in pairs(list) do
print(v)
end
print("")
---------------------------------------------------
end
function makeCircleImage()
-- This function makes a red circle
-- Renders it into an image, and returns the image
local img = image(400,400)
------------------------------------
-- Use the image as a render target
setContext(img)
background(0,0,0,0) -- transparent background
fill(255,0,0)
ellipse(200,200,200)
-- Set render target back to screen
setContext()
------------------------------------
return img
end
function didGetLogo( theLogo, status, headers )
print( "Response Status: " .. status )
-- Store logo in our global variable
logo = theLogo
-- Check if the status is OK (200)
if status == 200 then
print( "Downloaded logo OK" )
print( " Image dimensions: " ..
logo.width .. "x" .. logo.height )
local icon = image(logo.width, logo.height)
setContext(icon)
background(0, 0, 0, 255)
sprite(logo, logo.width / 2, logo.height / 2, logo.width, logo.height)
setContext()
saveImage("Project:Icon", icon)
else
print( "Error downloading logo" )
end
end
-- This function gets called once every frame
function draw()
-- This sets a dark background color
background(40, 40, 50)
-- Draw the logo we downloaded (when it's ready!)
if logo ~= nil then
sprite( logo, WIDTH/2, HEIGHT/2, WIDTH )
end
-- Draw the circle image we saved and read from the sprite pack
sprite( circleImage, WIDTH/2, 110 )
end
If you comment out the sprite() inside didGetLogo(), the screen starts drawing again. Very confusing.
Edit: I fixed it by putting a tween.delay(0, function() ... end) around the icon saving and it works, and I can confirm that example projects' icons cannot be overwritten.
@SkyTheCoder that last bug should be fixed in the next version (touching the renderer from a http callback wasn't working properly — just fixed it). Edit: just tested and confirm the next build fixes this.
When you say back/play buttons hit and miss. Do you mean they don't work, or they crash?
Is the lag when running a project still happening on the latest version?
@Simeon The lag is on the latest build for me, build 12. When I say the back/play buttons hit and miss I mean it seems very finicky about what qualifies as pressing them, i.e. I have to press the exact center or it doesn't work, which is annoying when just quickly pressing them. (it's also not a good combo with the lag because I'm not sure if it's frozen or it didn't realize I pressed it.)
@SkyTheCoder I saw that post but I'll need more info on what's going on. Is the music() function in Lua failing to work for all exported Xcode projects?
While there are still a few bugs to go, does version 2.1 (13) feel reasonably release-worthy to everyone?
I'm hoping to wrap up this version soon so that everyone can have proper iOS 8 compatibility (and so that I can start working on new features for the next version). Let me know what you think.
On the "about" screen, there's some big text blocking the credits (lag when closing the screen is there, too). Side note: I'm not listed in the Beta Testers, if you want to add that...
@SkyTheCoder sorry! Will update the list. Edit: It shouldn't lag when closing the screen — that's odd, it's not doing anything complicated. I'll look into it.
at some moment, my editor became crazy: the tabs whould not show when selected, only the last tab would show. But some times ok. Taping inside the tab would not change it. Some text superimposed at bottom. It started with a tab showing half its content only (top). i've closed the project, it seems ok now. No idea on how to reproduce it. Tip? I am using sounds in this project (usually i dont).
Two editor bugs regarding touchable code, in one screenshot:
To make the bugs appear, you need to follow these steps very closely:
Make sure you're in landscape mode
Make sure your keyboard isn't open
Press the line at the very top of the project, the --Editor Bug. This will make sure your keyboard is in the right spot for the bug to appear.
Press the little "tappable code" highlight from the sprite() function, even though it is half covered by the keyboard. No scrolling down to reach it easier!
Hide the keyboard while the sprite picker is open
The touched function is invisible! Touch the code editor to update it.
Also, when you hide the keyboard, you'll see there's a weird white rectangle behind the bottom half of the sprite picker that appears when it changes shape to fit the screen.
-- Editor Bug
-- Use this function to perform your initial setup
function setup()
print("Hello World!")
end
-- This function gets called once every frame
function draw()
-- This sets a dark background color
background(40, 40, 50)
-- This sets the line thickness
strokeWidth(5)
-- Do your drawing here
sprite("Cargo Bot:Codea Icon", WIDTH / 2, HEIGHT / 2)
end
function touched(touch)
print(touch)
end
Can't get GPS to work in the latest version under iOS 8. It never asks me about allowing the app to use GPS. Even if I go into location services and set Codea to "Always" allow, I still get no connection to the GPS.
@SkyTheCoder that's a pretty subtle bug, nice find. Thanks for the reproduction steps too, as I was able to recreate it. The sprite picker graphical thing appears to be an issue with iOS popovers resizing over the dismissed keyboard — I don't think there is anything I can do about that (without ditching UIKit popovers). I probably can prevent those areas being tapped when they overlap with the keyboard.
@toffer thanks for discovering that, they should follow a duplicated project. I will fix.
@Simeon looks like every time the app is run, it turns off location services. I can go into settings and turn it to always. Check it. Still always. Run codea, look in settings again and... Location services off.
@JakAttak If you can't retrieve your code, let me know. You could use my backup program to save it to a file and look at it or delete the original and load the backup.
Poking through messages about iOS 8 and location services.
It looks like in iOS 8, requestAlwaysAuthorization or requestWhenInUseAuthorization have to be called before starting location updates. Also, there needs to be a NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription key in Info.plist with a message to be displayed in the prompt.
@Simeon Thank's much. My little truck monitoring app is now being used at a mine in your neighborhood, and I'm making lots of changes for them, so that's great.
When you pause DeltaTime continues accumulating so when you resume it is a potentially massive number. This has negative impact on projects where I use DeltaTime to maintain smooth motion across all devices.
Adding on to @JakAttak, ElapsedTime starts counting from when you press the play button rather than when the first frame is rendered, causing any animations that occur in the first few seconds of the project using ElapsedTime to be over already once the project loads (there's still that lag whenever going to the project browser screen or starting a program)
It looks like an error flashes in the console when I close a project, but it goes by so fast I can't see what it says. I think it happens on Scratchpad too.
@SkyTheCoder Use a camera or phone and take a movie of the console as you close the project. Look at the movie and you should be able to read the error.
@dave1707 It only happens sometimes and I couldn't get it to work when I tried to find it. And, it shows for about 1 frame, so I can't really go back to see what it said on an actual recording.
@Simeon Any time line on the next release? Don't want to be a pest. I just need to either tear out new features and compile with the 2.0 release, or wait on the next patch so I can keep those trucks a-rollin'.
@Mark there is a 2.1 beta runtime (Xcode project + libraries) posted on the forums. You could use that to build your app to keep the new location stuff working?
Comments
@Simeon I'm on the latest beta. I managed to install it via iTunes
taping the search icon in projects list kills codea
@Andrew_Stacey thank you
@Jmv38 that one is fixed in the next build
@toffer thank you for the detailed steps, all fixed now
I'm still getting locked into projects by an unresponsive quit button, and then crashes when I try to run.
@JakAttak so to break down what happens:
Is that how you trigger this issue?
@Simeon, yup that's pretty much it
Okay, very confusing glitch I'm having here. I was testing to see if you could saveImage() and overwrite an example project's icon, and I was looking to see if I could find one with an icon that was easy to recreate (in case if I changed the icon so I could change it back). I came across the image IO's example and went to work seeing if I could just sprite() together the icon. However, I encountered that whenever I sprited
logo
into an image it stopped anything drawing on the screen. Code:If you comment out the sprite() inside didGetLogo(), the screen starts drawing again. Very confusing.
Edit: I fixed it by putting a tween.delay(0, function() ... end) around the icon saving and it works, and I can confirm that example projects' icons cannot be overwritten.
@SkyTheCoder that last bug should be fixed in the next version (touching the renderer from a http callback wasn't working properly — just fixed it). Edit: just tested and confirm the next build fixes this.
@Simeon The lag is on the latest build for me, build 12. When I say the back/play buttons hit and miss I mean it seems very finicky about what qualifies as pressing them, i.e. I have to press the exact center or it doesn't work, which is annoying when just quickly pressing them. (it's also not a good combo with the lag because I'm not sure if it's frozen or it didn't realize I pressed it.)
@SkyTheCoder ah, thanks for the clarification.
@Simeon Is this fixed in the next update? http://codea.io/talk/discussion/5686/music-throws-an-error-in-xcode#Item_1
@SkyTheCoder I saw that post but I'll need more info on what's going on. Is the
music()
function in Lua failing to work for all exported Xcode projects?While there are still a few bugs to go, does version 2.1 (13) feel reasonably release-worthy to everyone?
I'm hoping to wrap up this version soon so that everyone can have proper iOS 8 compatibility (and so that I can start working on new features for the next version). Let me know what you think.
Bug:
video recording doesnt stop when i tap on stop to save the video.
On the "about" screen, there's some big text blocking the credits (lag when closing the screen is there, too). Side note: I'm not listed in the Beta Testers, if you want to add that...
@SkyTheCoder sorry! Will update the list. Edit: It shouldn't lag when closing the screen — that's odd, it's not doing anything complicated. I'll look into it.
when adding an image from the your photo library, the top left show 2 superimposed texts at some moment, making it not nice and difficult to read.
Editor bug.
at some moment, my editor became crazy: the tabs whould not show when selected, only the last tab would show. But some times ok. Taping inside the tab would not change it. Some text superimposed at bottom. It started with a tab showing half its content only (top). i've closed the project, it seems ok now. No idea on how to reproduce it. Tip? I am using sounds in this project (usually i dont).
@Jmv38 is the superimposed text happening like this (reported by @toffer)? https://www.dropbox.com/s/375hgg38makqkia/Photo 08-09-2014 14 45 36.png?dl=0
Sorry about the editor bug, I'm unsure what could be causing it. I'll try some stress-testing.
Video recording issue is fixed in next build.
yes
Two editor bugs regarding touchable code, in one screenshot:
To make the bugs appear, you need to follow these steps very closely:
Make sure you're in landscape mode
Make sure your keyboard isn't open
Press the line at the very top of the project, the --Editor Bug. This will make sure your keyboard is in the right spot for the bug to appear.
Press the little "tappable code" highlight from the sprite() function, even though it is half covered by the keyboard. No scrolling down to reach it easier!
Hide the keyboard while the sprite picker is open
The touched function is invisible! Touch the code editor to update it.
Also, when you hide the keyboard, you'll see there's a weird white rectangle behind the bottom half of the sprite picker that appears when it changes shape to fit the screen.
Don't know if it's the correct behavior, project assets does not follow a duplicated project.
Can't get GPS to work in the latest version under iOS 8. It never asks me about allowing the app to use GPS. Even if I go into location services and set Codea to "Always" allow, I still get no connection to the GPS.
@SkyTheCoder that's a pretty subtle bug, nice find. Thanks for the reproduction steps too, as I was able to recreate it. The sprite picker graphical thing appears to be an issue with iOS popovers resizing over the dismissed keyboard — I don't think there is anything I can do about that (without ditching UIKit popovers). I probably can prevent those areas being tapped when they overlap with the keyboard.
@toffer thanks for discovering that, they should follow a duplicated project. I will fix.
@Mark very strange, I will test it.
@Simeon looks like every time the app is run, it turns off location services. I can go into settings and turn it to always. Check it. Still always. Run codea, look in settings again and... Location services off.
@Mark thank you for the extra information.
Is anyone getting a reproducible crash in the runtime? I notice some crash logs on TestFlight that seem to be related to
physics.gravity
Bug:
Codea corrupted my project.
Not sure what happened, but I was typing and Codea crashed, and now anytime I try to open said project Codea crashes.
I'm still trying to recover my code
@JakAttak If you can't retrieve your code, let me know. You could use my backup program to save it to a file and look at it or delete the original and load the backup.
@JakAttak Never mind. You could write a couple of lines of code to get the project.
@dave1707, yup. I wrote some code to copy it into a new project, but that just corrupted the new project as well.
Weirdly, it fixed itself when I accessed it through AirCode (trying to get a look at the files without iExplorer)
Bug: Dropbox says "Tap Sync" but there is no sync button
Pic also shows the left-hand tray being at the bottom (which I assume is a bug)
@JakAttak thanks for the reports — the corruption one is very concerning. Was it a large project? Did it corrupt when you went to run it?
The sync button will be fixed in the next build.
It was a very small program. I think the problem lies in the emoji that was in the code.
Poking through messages about iOS 8 and location services.
It looks like in iOS 8, requestAlwaysAuthorization or requestWhenInUseAuthorization have to be called before starting location updates. Also, there needs to be a NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription key in Info.plist with a message to be displayed in the prompt.
Don't know if this helps.
@Mark this should be fixed in Codea Scratchpad (current build) and will make its way to 2.1 next build
@Simeon Thank's much. My little truck monitoring app is now being used at a mine in your neighborhood, and I'm making lots of changes for them, so that's great.
@Mark wow, that's impressive.
Not sure if this is a bug, but it feels like one:
When you pause DeltaTime continues accumulating so when you resume it is a potentially massive number. This has negative impact on projects where I use DeltaTime to maintain smooth motion across all devices.
Adding on to @JakAttak, ElapsedTime starts counting from when you press the play button rather than when the first frame is rendered, causing any animations that occur in the first few seconds of the project using ElapsedTime to be over already once the project loads (there's still that lag whenever going to the project browser screen or starting a program)
It looks like an error flashes in the console when I close a project, but it goes by so fast I can't see what it says. I think it happens on Scratchpad too.
@SkyTheCoder Use a camera or phone and take a movie of the console as you close the project. Look at the movie and you should be able to read the error.
@dave1707 It only happens sometimes and I couldn't get it to work when I tried to find it. And, it shows for about 1 frame, so I can't really go back to see what it said on an actual recording.
it's the message that says a frame was skipped. you can ignore it.
I know you are busy with ScrtchPad, but it would be nice to have video recording repaired soon.
btw, it is broken in FULLSCREEN and not in STANDARD
@Jmv38 sorry, it's fixed already I just need to send out the build!
Just doing a bit of an elbow jog in hopes that new build is coming soon.
@Mark I'm tearing out the current project browser and putting something new in that is inspired by the Scratchpad UI.
@Simeon Any time line on the next release? Don't want to be a pest. I just need to either tear out new features and compile with the 2.0 release, or wait on the next patch so I can keep those trucks a-rollin'.
@Mark there is a 2.1 beta runtime (Xcode project + libraries) posted on the forums. You could use that to build your app to keep the new location stuff working?
Link: http://codea.io/talk/discussion/5797/codea-2-1-runtime-lib-prerelease-xcode-project