আমি এক্সিকে এম্বেড থাকা সমস্ত সংস্থান সহ একটি একক এক্স ফাইল তৈরি করতে সক্ষম হয়েছি। আমি উইন্ডোতে বিল্ডিং করছি। যাতে ওএস.সিস্টেম কলগুলি আমি ব্যবহার করছি তার কিছু ব্যাখ্যা করবে।
প্রথমে আমি আমার সমস্ত চিত্রগুলি বিটমেটে এবং তারপরে আমার সমস্ত ডেটা ফাইলকে টেক্সট স্ট্রিংয়ে রূপান্তরিত করার চেষ্টা করেছি। তবে এটি চূড়ান্ত এক্সকে খুব বড় করে তোলে।
এক সপ্তাহ গুগল করার পরে আমি বুঝতে পারি কীভাবে আমার চাহিদা মেটাতে পাইপেক্স এক্স্রি স্ক্রিপ্ট পরিবর্তন করতে হবে।
আমি জমা দেওয়া সোর্সফোরেজের প্যাচ লিঙ্কটি এখানে, মন্তব্য পোস্ট করুন যাতে আমরা এটি পরবর্তী বিতরণে অন্তর্ভুক্ত করতে পারি।
http://sourceforge.net/tracker/index.php?func=detail&aid=3334760&group_id=15583&atid=315583
এটি করা সমস্ত পরিবর্তন ব্যাখ্যা করে, আমি কেবল সেটআপ লাইনে একটি নতুন বিকল্প যুক্ত করেছি। এখানে আমার সেটআপ.পি।
আমি এটিকে যথাসাধ্য মন্তব্য করার চেষ্টা করব। দয়া করে জেনে রাখুন যে আমার সেটআপ.পি ফাইল-নাম দিয়ে ছবিগুলিতে অ্যাক্সেস করছি তা করতে জটিল complex সুতরাং তাদের ট্র্যাক রাখতে আমার অবশ্যই একটি তালিকা সঞ্চয় করতে হবে।
এটি আমি চেয়েছি এমন একটি স্ক্রিন সেভার থেকে এসেছি।
আমি রানের সময় আমার সেটআপটি তৈরি করতে এক্সেক ব্যবহার করি, এর মতো কাটা এবং আটকানো সহজ।
exec "setup(console=[{'script': 'launcher.py', 'icon_resources': [(0, 'ICON.ico')],\
'file_resources': [%s], 'other_resources': [(u'INDEX', 1, resource_string[:-1])]}],\
options={'py2exe': py2exe_options},\
zipfile = None )" % (bitmap_string[:-1])
ভাঙ্গন
স্ক্রিপ্ট = পাই স্ক্রিপ্ট আমি একটি এক্সে যেতে চাই
আইকন_সোর্সগুলি = এক্সির জন্য আইকন
ফাইল_সোর্সগুলি = ফাইলগুলি আমি উদাহরণের মধ্যে এম্বেড করতে চাই
অন্যান্য_সোর্সগুলি = এক্সিকে এম্বেড করার জন্য একটি স্ট্রিং, এই ক্ষেত্রে একটি ফাইল তালিকা।
অপশন = পাই 2 এক্স এক্স বিকল্পগুলিকে এক এক্সাই ফাইলে তৈরি করার জন্য
বিটম্যাপ_স্ট্রিংস = অন্তর্ভুক্ত করা ফাইলগুলির একটি তালিকা
দয়া করে নোট করুন যে উপরের লিঙ্কে বর্ণিত হিসাবে আপনি নিজের পাইপেক্সেক্স.পি ফাইলটি সম্পাদনা না করা পর্যন্ত ফাইল_সোর্সগুলি কোনও বৈধ বিকল্প নয়।
প্রথমবার আমি এই সাইটে কোড পোস্ট করার চেষ্টা করেছি, যদি আমার এটি ভুল হয়ে যায় তবে আমাকে শিখাবেন না।
from distutils.core import setup
import py2exe #@UnusedImport
import os
#delete the old build drive
os.system("rmdir /s /q dist")
#setup my option for single file output
py2exe_options = dict( ascii=True, # Exclude encodings
excludes=['_ssl', # Exclude _ssl
'pyreadline', 'difflib', 'doctest', 'locale',
'optparse', 'pickle', 'calendar', 'pbd', 'unittest', 'inspect'], # Exclude standard library
dll_excludes=['msvcr71.dll', 'w9xpopen.exe',
'API-MS-Win-Core-LocalRegistry-L1-1-0.dll',
'API-MS-Win-Core-ProcessThreads-L1-1-0.dll',
'API-MS-Win-Security-Base-L1-1-0.dll',
'KERNELBASE.dll',
'POWRPROF.dll',
],
#compressed=None, # Compress library.zip
bundle_files = 1,
optimize = 2
)
#storage for the images
bitmap_string = ''
resource_string = ''
index = 0
print "compile image list"
for image_name in os.listdir('images/'):
if image_name.endswith('.jpg'):
bitmap_string += "( " + str(index+1) + "," + "'" + 'images/' + image_name + "'),"
resource_string += image_name + " "
index += 1
print "Starting build\n"
exec "setup(console=[{'script': 'launcher.py', 'icon_resources': [(0, 'ICON.ico')],\
'file_resources': [%s], 'other_resources': [(u'INDEX', 1, resource_string[:-1])]}],\
options={'py2exe': py2exe_options},\
zipfile = None )" % (bitmap_string[:-1])
print "Removing Trash"
os.system("rmdir /s /q build")
os.system("del /q *.pyc")
print "Build Complete"
ঠিক আছে, সেটআপের জন্য এটি চালিয়েছে py আমি পাইপেক্স না রেখে এই অ্যাপটি বিকাশ করেছি এবং পরে এটি যুক্ত করেছি। সুতরাং আপনি উভয় পরিস্থিতিতে অ্যাক্সেস দেখতে পাবেন। যদি চিত্র ফোল্ডারটি খুঁজে পাওয়া যায় না তবে এটি এক্সে সংস্থানগুলি থেকে চিত্রগুলি টানতে চেষ্টা করে। কোড এটি ব্যাখ্যা করবে। এটি আমার স্প্রাইট শ্রেণীর অংশ এবং এটি একটি ডাইরেক্টেক্স ব্যবহার করে। তবে আপনি যে কোনও এপিআই ব্যবহার করতে পারেন বা কেবল কাঁচা ডেটা অ্যাক্সেস করতে পারেন। কিছু যায় আসে না।
def init(self):
frame = self.env.frame
use_resource_builtin = True
if os.path.isdir(SPRITES_FOLDER):
use_resource_builtin = False
else:
image_list = LoadResource(0, u'INDEX', 1).split(' ')
for (model, file) in SPRITES.items():
texture = POINTER(IDirect3DTexture9)()
if use_resource_builtin:
data = LoadResource(0, win32con.RT_RCDATA, image_list.index(file)+1) #windll.kernel32.FindResourceW(hmod,typersc,idrsc)
d3dxdll.D3DXCreateTextureFromFileInMemory(frame.device, #Pointer to an IDirect3DDevice9 interface
data, #Pointer to the file in memory
len(data), #Size of the file in memory
byref(texture)) #ppTexture
else:
d3dxdll.D3DXCreateTextureFromFileA(frame.device, #@UndefinedVariable
SPRITES_FOLDER + file,
byref(texture))
self.model_sprites[model] = texture
#else:
# raise Exception("'sprites' folder is not present!")
যে কোনও প্রশ্ন জিজ্ঞাসা বিনামূল্যে।