切切切...

烁灵 posted @ 2015年1月03日 21:50 in Ruby with tags plist , 1428 阅读
require 'sdl'
require "rexml/document"  
include REXML  
SDL.init(SDL::INIT_VIDEO)

row = 4
col = 4

filename = "citizen-1.png"
image = SDL::Surface.load(filename)
w, h = image.w, image.h
if filename[/^(.*)?\.(png|jpg|bmp)?/i]
	p $1, $2
end

picname = $1
ext = $2


doc = Document.new("<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">")
doc << XMLDecl.new(1.0, "utf-8")
root_node = doc.add_element("plist")
root_node.attributes["version"] = "1.0"
root_dict = root_node.add_element("dict") 

# frames
frame_key = root_dict.add_element("key")
frame_key.text = "frames"
frame_dict =  root_dict.add_element("dict")

for i in 0...row
	for j in 0...col
		key = Element.new("key")
		key.text = "#{picname}_#{i * col + j}.#{ext}"
		dict = Element.new("dict")
		# dict
		ek = []
		ev = []
		
		ek[0] = Element.new("key")
		ek[0].text = "width"
		ev[0] = Element.new("integer")
		ev[0].text = (w / col).to_s
		
		ek[1] = Element.new("key")
		ek[1].text = "height"
		ev[1] = Element.new("integer")
		ev[1].text = (h / row).to_s
		
		ek[2] = Element.new("key")
		ek[2].text = "originalWidth"
		ev[2] = Element.new("integer")
		ev[2].text = (w / col).to_s
		
		ek[3] = Element.new("key")
		ek[3].text = "originalHeight"
		ev[3] = Element.new("integer")
		ev[3].text = (h / row).to_s
		
		ek[4] = Element.new("key")
		ek[4].text = "x"
		ev[4] = Element.new("integer")
		ev[4].text = (j * w / row).to_s
		
		ek[5] = Element.new("key")
		ek[5].text = "y"
		ev[5] = Element.new("integer")
		ev[5].text = (i * h / col).to_s
		
		ek[6] = Element.new("key")
		ek[6].text = "offsetX"
		ev[6] = Element.new("real")
		ev[6].text = "0"
		
		ek[7] = Element.new("key")
		ek[7].text = "offsetY"
		ev[7] = Element.new("real")
		ev[7].text = "0"
		
		for t in 0...ek.size
			dict.elements << ek[t]
			dict.elements << ev[t]
		end
		
		frame_dict.elements << key
		frame_dict.elements << dict
		
		# end dict
	end
end
# end frames
	
# metadata
metadata_key = root_dict.add_element("key")
metadata_key.text = "metadata"
metadatat_dict =  root_dict.add_element("dict")

ek = []
ev = []

ek[0] = Element.new("key")
ek[0].text = "format"
ev[0] = Element.new("integer")
ev[0].text = "2"	

ek[1] = Element.new("key")
ek[1].text = "textureFileName"
ev[1] = Element.new("string")
ev[1].text = filename

ek[2] = Element.new("key")
ek[2].text = "realTextureFileName"
ev[2] = Element.new("string")
ev[2].text = filename

ek[3] = Element.new("key")
ek[3].text = "size"
ev[3] = Element.new("string")
ev[3].text = "{#{w},#{h}}"

for t in 0...ek.size
	metadatat_dict.elements << ek[t]
	metadatat_dict.elements << ev[t]
end
#end metadata

# texture
texture_key = root_dict.add_element("key")
texture_key.text = "texture"
texture_dict =  root_dict.add_element("dict")

ek = []
ev = []

ek[0] = Element.new("key")
ek[0].text = "width"
ev[0] = Element.new("integer")
ev[0].text = "#{w}"	

ek[1] = Element.new("key")
ek[1].text = "height"
ev[1] = Element.new("integer")
ev[1].text = "#{h}"

for t in 0...ek.size
	texture_dict.elements << ek[t]
	texture_dict.elements << ev[t]
end
# end texture

file = File.open("#{picname}.plist", "w")
doc.write(file, 4, false, true)
file.close

p doc.xml_decl()

bug啥的慢慢修。

Avatar_small
 https://idnpoker97. 说:
2021年4月03日 07:01

Very nice article. I enjoyed reading your post. very nice share. I want to twit this to my followers. Thanks !.

Avatar_small
poker 说:
2021年4月03日 10:00

Nice post. I was checking constantly this blog and I am impressed!

Avatar_small
Extreme Bio Hazard C 说:
2021年4月04日 00:02

You have a good point here!I totally agree with what you have said!!Thanks for sharing your views...hope more people will read this article!!!

Avatar_small
Weebly tradesmen quo 说:
2021年4月05日 22:22

This really is additionally an excellent publish that we truly loved reading through. It's not daily which i possess the likelihood to determine some thing.

Avatar_small
pawn shop goodyear a 说:
2021年4月07日 05:34

Good website! I truly love how it is easy on my eyes it is. I am wondering how I might be notified whenever a new post has been made. I have subscribed to your RSS which may do the trick? Have a great day!

Avatar_small
keto allergies 说:
2021年4月10日 11:52

Thanks for taking the time to discuss that, I feel strongly about this and so really like getting to know more on this kind of field. Do you mind updating your blog post with additional insight? It should be really useful for all of us.

Avatar_small
where can i sell wat 说:
2021年4月14日 09:00

I think this is one of the most significant information for me. And i’m glad reading your article. But should remark on some general things, The web site style is perfect, the articles is really great : D. Good job, cheers

Avatar_small
pawn shop in glendal 说:
2021年5月04日 08:57

Everything has its own value, but this is really precious information shared by Author of

Avatar_small
pawn shop in glendal 说:
2021年7月06日 21:55

Good website! I truly love how it is easy on my eyes it is. I am wondering how I might be notified whenever a new post has been made. I have subscribed to your RSS which may do the trick? Have a great day!

Avatar_small
web 说:
2021年10月27日 16:04

I read this article. I think You put a lot of effort to create this article. I appreciate your work matka result

Avatar_small
WEB 说:
2022年7月14日 17:11

A decent blog dependably concocts new and energizing data and keeping in mind that understanding I have feel that this blog is truly have each one of those quality that qualify a blog to be a one. satta matka


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter