2016-04-11 3 views
-6

Хорошо, поэтому я копирую игру, которую я написал в андроидских студиях, чтобы быстро перейти на ios. Я выяснил много различий в синтаксисе, но есть еще кое-что, что я не могу понять. я вывешу быстрый код первого, то я буду размещать код Java для сравнения с, и, наконец, я объясню, что должно происходить:Быстрые объекты используя? или?

func set(t: Int){ 
    _type = 0; //For debugging otherwise equal to t 
    delay = 0; 
    current = 0; 
    last = 0; 
    count = 0; 

    switch (_type){ 
    case 0: 
     pt = Array<normal>(); 
     let p1 = normal(bpc: self, gameScene: gm); 
     let p2 = normal(bpc: self, gameScene: gm); 
     let p3 = normal(bpc: self, gameScene: gm); 
     length = 3; //for array length 

     pt?.append(p1); 
     pt?.append(p2); 
     pt?.append(p3); 

     hit = Array<Bool>(); 
     hit?.append(false); 
     hit?.append(false); 
     hit?.append(false); 

     break; 

Теперь для эквивалентного кода Java, который работает:

void set(int t){ 
    _type = t; 
    delay = 0; 
    current = 0; 
    last = 0; 
    count = 0; 

    switch (_type){ 
     case 0: 
      pt = new normal[3]; 
      hit = new boolean[3]; 
      for (int i = 0; i < 3; i++){ 
       pt[i] = new normal(); 
       hit[i] = false; 
      } 
      break; 

Таким образом, нижний код - это код в моей игре для Android, который работает. Код выше - это код, который я пытаюсь сделать так же, но у меня, похоже, проблемы с массивом объектов. Кроме того, я ПТ объявлена ​​выше, как:

private var pt   : [Poop_Type]?; 

и Java эквивалент:

private Poop_Type pt[]; 
+1

Как насчет чтения https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html книги раньше? –

+0

в качестве альтернативы, мне бы лучше было отказаться от куска денег, чтобы получить игрового автомата. Я наполовину соблазн просто удалить все динамические объекты и просто жестко закодировать все, чтобы все загружалось и запускалось одновременно, а затем использовало интенсивную интенсивность процессора и подверженность ошибкам, если затем раздел, чтобы выбрать, какие объекты необходимо обновить, и имеют аффект. – Zero

+1

Если вы запутались в опциях и о том, как с ними бороться - мой [ответ здесь] (http://stackoverflow.com/a/36360605/2976878) может быть вам полезен. Концептуальные документы Apple в Swift удивительно ясны и информативны, хотя и намного лучше, чем любые документы другого языка программирования, которые я видел. – Hamish

ответ

0

я понял проблему. Этот код действительно работал. Проблема была обусловлена ​​выше, чем вызванная цепочка, которая не была установлена.

Смежные вопросы