Hola he estado pidiendo ayuda en varios foros, pero aun no me han podido ayudar desde hace rato.
Estoy haciendo un juego para ipod y android.
Estoy teniendo problemas con el manejo de las imágenes de resolución dinámica, las transiciones, la clase director 1.4 y los grupos.
Les presento mi primer caso:
Ando programando con windows para ios y droid, estoy usando el view as del iphone y iphone4, con su debido tamaño y resolución.
Aqui el codigo que estaba usando para el config y el build settings:
config.lua
application =
{
content =
{
width = 320,
height = 480,
scale = “letterbox”,
imageSuffix =
{
["-x15"] = 1.5,
["-x2"] = 2,
},
},
}
build.settings
Supported values for orientation:
– portrait, portraitUpsideDown, landscapeLeft, landscapeRight
settings = {
orientation = {
default = “portrait”,
content = “portrait”,
supported = { “landscapeLeft”, “landscapeRight”, “portrait”, “portraitUpsideDown” }
},
iphone = {
plist = {
CFBundleIconFile = “Icon.png”,
CFBundleIconFiles = {
“Icon.png” ,
“Icon@2x.png” ,
“Icon-72.png” ,
“Icon-Small-50.png” ,
“Icon-Small.png” ,
“Icon-Small@2x.png”
},
UIStatusBarHidden = true,
UIPrerenderedIcon = true,
UIApplicationExitsOnSuspend = true,
UIAppFonts = {“SF_Slapstick_Comic.ttf”}
},
}
}
–[[ For Android:
androidPermissions = {
“android.permission.INTERNET”,
},
]]–
}
He estado usando imágenes proporcionalmente ajustadas a la debida resolución, rectángulos para imágenes cuadradas u spritesheets.
Cuando termine de programar mis imágenes solo se veían bien en el emulador de iphone, pero el del iphone 4 no me mostraba bien las imágenes. Ya que para el iphone use posicionamiento ajustado a
480x320. Cuando cambio al emulador de 4g el tamaño incrementa y el posicionamiento se queda igual, haciendo ver pequeñas a las imágenes, incluso con el sufijo 2x este no me lo carga adecuadamente.
Aquí un ejemplo de a lo que me refiero.
local character1 = sprite.newSprite(charSet) for 480 x320
character1.x=52
character1.y=320
local character1 = sprite.newSprite(charSet) for 960 x640
character1.x=104
character1.y=640
.
Me vi obligado por este problema, a cambiar mi config.lua por esto:
application =
{
content =
{
width = 640,
height = 960,
scale = “letterbox”,
},
}
Con estas configuraciones, solamente use las imágenes del sufijo @2x ya ajustadas 960x640.
Les quite el @2x y las uses como objeto.png normal.
Cambie los posicionamientos ajustado a 960x640.
Y todo empezó a funcionar bien en todos los emuladores del corona, tanto iphone, iphone4g y droid.
Cabe recalcar que no tengo licencias para probar en mi dispositivo.
Ahora el problema que se me presento fue, ya que programe y organice todo con corona sdk en windows. Fue que trate de abrir el proyecto con una nueva mac: Pero pasa lo inverso:
El emulador de iphone me arga imagenes grandes y pequeñas
El emulador de iphone funciona, pero me da errores de Director como este:
Aqui el codigo.
Director ERROR: Failed to execute new( params ) function on ‘Worldmap’.
[blockcode]
module(…, package.seeall)
–====================================================================–
– SCENE: [NAME]
–====================================================================–
–[[
- Version: [1.0]
- Made by: [name]
- Website: [url]
- Mail: [mail]
******************
-
INFORMATION
****************** -
[Your info here]
–]]
new = function (params)
– Groups
local localGroup = display.newGroup()
ego = require “ego”
saveFile = ego.saveFile
loadFile = ego.loadFile
– Your code here
– Storyboard slide & skip button
local Map
local Reddot1
local Reddot2
local Reddot3
local puntosacumulados
local score
–functions
local Main={}
local Maplisteners={}
local Showwindow1={}
local Showwindow2={}
local Showwindow3={}
– Main
function Main()
Map=display.newImage(“Map.png”,0,0)
Reddot1= display.newCircle(110,600,30)
Reddot1:setFillColor(255,0,0)
Reddot2= display.newCircle(320,780,30)
Reddot2:setFillColor(255,0,0)
Reddot3= display.newCircle(510,600,30)
Reddot3:setFillColor(255,0,0)
score=loadFile(“score.txt”)
puntosacumulados=display.newText(score,300,40,“Helvetica”,40)
localGroup:insert(Map)
localGroup:insert(Reddot1)
localGroup:insert(Reddot2)
localGroup:insert(Reddot3)
localGroup:insert(puntosacumulados)
Maplisteners(“add”)
end
– agregando listeners a los botones next y skip
function Maplisteners (action)
if (action==“add”)then
Reddot1:addEventListener(‘tap’,Showwindow1)
Reddot2:addEventListener(‘tap’,Showwindow2)
Reddot3:addEventListener(‘tap’,Showwindow3)
else
Reddot1:removeEventListener(‘tap’,Showwindow1)
Reddot2:removeEventListener(‘tap’,Showwindow2)
Reddot3:removeEventListener(‘tap’,Showwindow3)
end
end
–funciones para popup
function Showwindow1()
director:openPopUp(“Window”, “fade” )
end
function Showwindow2()
director:openPopUp(“Window2”, “fade” )
end
function Showwindow3()
director:openPopUp(“Window3”, “fade” )
end
Main()
— CODE —
– MUST return a display.newGroup()
return localGroup
end
[/blockcode]
No entiendo a los emuladores, y cual este en lo correcto y cual seria el mejor para publicar en que.
Deberia usar mi mac para publicar solo para ipod o tambien para droid, o deberia usar mi windows para droid?
Deberia manejar dos carpetas una exclusiva para windows y una para iosx?
Ahorita me encuentro trabajando solo con mac ya que de aqui hare pruebas mas a futuro, pero seria la mejor manera para publicar para iphone, iphone 4g y droi, sin que las imagenes cambien de tamaño o posicion, solo que cambien de resolucion, incluso usando sufijos?
Aun me encuentro aprendiendo, si alguien necesita el codigo completo o alguna clase, se los agradeceria mucho que me ayudaran a identificar los problemas, muchas gracias.
[import]uid: 173185 topic_id: 30238 reply_id: 330238[/import]