浏览代码

add uint32uint8array

David Rose 24 年之前
父节点
当前提交
e3a9436f07
共有 2 个文件被更改,包括 19 次插入0 次删除
  1. 5 0
      direct/src/extensions/Datagram-extensions.py
  2. 14 0
      direct/src/extensions/DatagramIterator-extensions.py

+ 5 - 0
direct/src/extensions/Datagram-extensions.py

@@ -48,6 +48,11 @@
             self.addUint16(len(arg) << 2)
             for i in arg:
                 self.addUint32(int(i*divisor))
+        elif subatomicType == STUint32uint8array:
+            self.addUint16(len(arg) * 5)
+            for i in arg:
+                self.addUint32(int(i[0]*divisor))
+                self.addUint8(int(i[1]*divisor))
         else:
             raise Exception("Error: No such type as: " + subatomicType)
         return None

+ 14 - 0
direct/src/extensions/DatagramIterator-extensions.py

@@ -56,6 +56,13 @@
                 retVal = []
                 for i in range(len):
                     retVal.append(self.getUint32())
+            elif subatomicType == STUint32uint8array:
+                len = self.getUint16() / 5
+                retVal = []
+                for i in range(len):
+                    a = self.getUint32()
+                    b = self.getUint8()
+                    retVal.append((a, b))
             else:
                 raise Exception("Error: No such type as: " + str(subAtomicType))
         else:
@@ -112,6 +119,13 @@
                 retVal = []
                 for i in range(len):
                     retVal.append(self.getUint32()/float(divisor))
+            elif subatomicType == STUint32uint8array:
+                len = self.getUint16() / 5
+                retVal = []
+                for i in range(len):
+                    a = self.getUint32()
+                    b = self.getUint8()
+                    retVal.append((a / float(divisor), b / float(divisor)))
             else:
                 raise Exception("Error: No such type as: " + str(subAtomicType))