Trans modifcation for cleaner DATA folder loading
Monkey Forums/Monkey Code/Trans modifcation for cleaner DATA folder loading
| ||
| probably possible to do in other way but this is the monkey way modify src\trans\target.monkey for auto file management so build folder contains only proper files and only proper files are loaded and cached in the application
DeleteDir dir,True
CreateDir dir
If FileType( dataPath )=FILETYPE_DIR
CopyDir dataPath,dir,True,False
Endif
For Local file$=Eachin app.fileImports
Local lll$ = ExtractExt( file ).ToLower()
Select lll
'all text files in data/tetxt
Case "txt","xml","json"
If Not embedTextFiles
CopyFile file,dir+"/"+StripDir( file )
Endif
'graphic file formats in data/graphics
Case "png","jpg","bmp"
'for ios only in IOS folder
If (ENV_TARGET = "ios")
If (file.Contains("ios"))
CopyFile file,dir+"/"+StripDir( file )
'for android only in android folder
ElseIf (ENV_TARGET = "android")
If (file.Contains("android"))
CopyFile file,dir+"/"+StripDir( file )
' other targets in desktop folder
Else
If (file.Contains("desktop"))
CopyFile file,dir+"/"+StripDir( file )
End
End
'audio file formats in data/sound/
Case "wav","ogg","aac","m4a","mp4","aif","caf","mp3","wma"
'for ios only waves
If (ENV_TARGET = "ios" And lll = "wav")
CopyFile file,dir+"/"+StripDir( file )
'for android only ogg
ElseIf (ENV_TARGET = "android" And lll = "ogg")
CopyFile file,dir+"/"+StripDir( file )
'for flash copy only mp3
ElseIf (ENV_TARGET = "flash" And lll = "mp3")
CopyFile file,dir+"/"+StripDir( file )
'for other copy all of them
Else
CopyFile file,dir+"/"+StripDir( file )
End
End Select
Next
this is the folder structure in DATA folder I am using another tool made in .NET to generate all graphics and sounds properly from some base folder with higher base resolution for graphics DATA SOUNDS FILE.WAV FILE.OGG FILE.MP3 MUSIC FILE.WAV FILE.OGG FILE.MP3 TEXT FILE.TXT GRAPHICS IOS FILE.PNG '320x480 for iphone3 FILE@... '640x960 for iphone retina if not avaiable load normal file FILE@... '1024x768 for ipad if not available load 2x ANDROID FILE@... '240x320 -> strech the rest FILE@... '320x480 -> strech the rest FILE@... '480x800 -> strech the rest DESKTOP FILE.PNG some code for OnCreate() 'CHECK CURRENT ORIENTATION IF(DEVICE_HEIGHT > DEVICE_WIDTH) ORIENTATION = 1 IF(DEVICE_HEIGHT < DEVICE_WIDTH) ORIENTATION = 0 #TARGET = "ios" 'check device area if(DEVICE_HEIGHT*DEVICE_WIDTH = 320*480) IOS_DEVICE = 0 'iPhone if(DEVICE_HEIGHT*DEVICE_WIDTH = 640*960) IOS_DEVICE = 1 'iPhone 4 Retina if(DEVICE_HEIGHT*DEVICE_WIDTH = 1024*768) IOS_DEVICE = 2 'iPad SOUND_EXT = ".wav" IMAGE_PATH = "graphics/ios/" IF(IOS_DEVICE = 0) IMAGE_EXT = ".png" IF(IOS_DEVICE = 1) IMAGE_EXT = "@2x.png" IF(IOS_DEVICE = 2) IMAGE_EXT = "@PAD.png" #END #TARGET = "android" if(ORIENTATION = 1) if(DEVICE_WIDTH = 240) ANDROID_DEVICE = 0 if(DEVICE_WIDTH = 320) ANDROID_DEVICE = 1 if(DEVICE_WIDTH = 480) ANDROID_DEVICE = 2 End if(ORIENTATION = 0) if(DEVICE_HEIGHT = 240) ANDROID_DEVICE = 0 if(DEVICE_HEIGHT = 320) ANDROID_DEVICE = 1 if(DEVICE_HEIGHT = 480) ANDROID_DEVICE = 2 End IF(ANDROID_DEVICE = 0) IMAGE_EXT = "@240.png" 'base 240x320 -> ??? IF(ANDROID_DEVICE = 1) IMAGE_EXT = "@320.png" 'base 320x480 -> any other is widden IF(ANDROID_DEVICE = 2) IMAGE_EXT = "@480.png" 'base 480x800 -> and 480x854 is widen IMAGE_PATH = "graphics/android/" SOUND_EXT = ".ogg" #END #TARGET = "flash" IMAGE_EXT = ".png" SOUND_EXT = ".mp3" IMAGE_PATH = "graphics/desktop/" #END #TARGET = "html5" Local br# = GetBrowserName() if(br = "Chrome" or br = "Opera" or br = "Firefox") SOUND_EXT = ".ogg" if(br = "Safari" or br = "MSIE") SOUND_EXT = ".wav" IMAGE_EXT = ".png" IMAGE_PATH = "graphics/desktop/" #END to load files we can just
'*******************************
'* LOAD SPLASH SCREEN DATA
'*******************************
Method LoadSplashScreens(backPath$)
back = LoadImage(IMAGE_PATH + backPath + IMAGE_EXT)
End
'*******************************
'* LOAD MUSIC AND PLAY
'*******************************
Method MusicLoadPlay:Void(file:String, flags:Int=1)
StopMusic()
SetMusicLevel(musicVolume)
If file.Contains(".wav") Or file.Contains(".ogg") Or file.Contains(".mp3") Then
nextMusicPath = MUSIC_PATH + file
if(soundsOn) return
musicOn = PlayMusic(nextMusicPath, flags)
Else
nextMusicPath = MUSIC_PATH + file + SOUND_EXT
if(soundsOn) return
musicOn = PlayMusic(nextMusicPath, flags)
End
End
multi layouts in application. Application is designed to be run for 640/960 for all game mechanics and stuff (touch pad, UI, drawing, positions). All mechanics are scaled using resX and resY variables based and all graphics are loaded with proper resolution extensions so for 320x480 resX would be 0.5 and buttonMenu@... would be loaded. '******************************* '* '******************************* Method SetupOutPutResolution(modeX#, modeY#) resX = modeX / 640.0 resY = modeY / 960.0 End '******************************* Method SetupOutPutResolution() resX = DEVICE_WIDTH / 640.0 resY = DEVICE_HEIGHT / 960.0 End |