Cocos2d'nin bir Rubymotion uygulaması olan cocosmotion ile deneme yapıyorum. Çalıştığım derste, bir yapıyı argüman olarak alan bir metodum var. Rubymotion ve MacRuby belgelerine danıştım, ancak ihtiyacım olan yapıya dayanarak yeni bir nesneyi nasıl oluşturacağımı anlayamıyorum. Bence asıl mesele, yapının küçük harfle başlaması ve Ruby ile çalışmayı denediğimde yerel bir değişken olduğunu düşünüyor. https://github.com/MacRuby/MacRuby/issues/121Yapılar için Rubymotion ve İşaretçiler
bir çözüm veya çözüm var mı: Burada belirtildiği gibi
ben de aynı sorun var inan?
yapı şöyle Objective-C tanımlanır:
typedef struct _ccTexParams {
GLuint minFilter;
GLuint magFilter;
GLuint wrapS;
GLuint wrapT;
} ccTexParams;
Aramaya çalışıyorum yöntem ccTexParams yapı bekliyor. İşte
denedim budur: @mysprite = Pointer.new("{ccTexParams=
{GLUint=GL_LINEAR_MIPMAP_LINEAR}
{GLUint=GL_LINEAR}
{GLUint=GL_CLAMP_TO_EDGE}
{GLUint=GL_CLAMP_TO_EDGE}}", 4)
ben bu şekilde çalıştığınızda:
@mysprite = Pointer.new(:object, 4)
@mysprite[0] = GL_LINEAR_MIPMAP_LINEAR
@mysprite[1] = GL_LINEAR
@mysprite[2] = GL_CLAMP_TO_EDGE
@mysprite[3] = GL_CLAMP_TO_EDGE
çalışma zamanı hatasıdır:
expected instance of Pointer of type `{_ccTexParams=IIII}', got `@' (TypeError)
Ben de denedim:
@mysprite = Pointer.new("_ccTexParams", 4)
@mysprite[0] = GL_LINEAR_MIPMAP_LINEAR
@mysprite[1] = GL_LINEAR
@mysprite[2] = GL_CLAMP_TO_EDGE
@mysprite[3] = GL_CLAMP_TO_EDGE
hatası:
Can't find pointer description for type `_ccTexParams'
Ben de farklı şekillerde bir grup içinde CcTexParams, _ccTexParams ve sadece ccTexParams olarak değiştirmeye çalıştık, bundan hiç versiyonları çalışır.
bu çalıştı:@mysprite = CcTexParams.new
@mysprite.minFilter = GL_LINEAR_MIPMAP_LINEAR
@mysprite.magFilter = GL_LINEAR
@mysprite.wrapS = GL_CLAMP_TO_EDGE
@mysprite.wrapT = GL_CLAMP_TO_EDGE
rubymotion Sadece yöntemine doğrudan [GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE]
geçen çalıştı o expected an instance of Pointer, got '#<CcTexParams minFilter=9987 magFilter=9729 wrapS=33071 wrapT=33071>' (CcTexParams) (TypeError)
şikayet ediyor. Bu expected a Pointer but got an Array
şikayet ediyor.
Belki de ccTexParams
dosyasını lib olarak CCTexParams
gibi bir şeye yeniden adlandırmalıyım? Sanırım bu ideal bir çözüm değil.
Önerilerimin içeriğini sorgunuza taşıdım ve yanıtımı sildim. Umarım bu, sorunuz olmadığı için sorunuzu daha görünür hale getirir. – vacawama
Yardımlarınız için teşekkürler @vacawama. – plasticbugs