2017-02-11 1 views
0

Ich versuche, mehrere Punkte für Token auf einer Karte zu setzen, mit dem circle Befehl. Ich möchte versuchen, Arrays für die x-y-Koordinaten zu verwenden, aber es wird nur das erste Element der Arrays gedruckt. Hier ist der relevante Code-Zeile:Squib: Verwenden von Arrays mit "Kreis" -Befehl

circle x: [75, 150, 325, 500, 675, 750], y: [900, 1050, 1050, 1050, 1050, 900], 
radius: 62.5, stroke_width: 2 
+0

Es scheint, dass '' Squib' des circle' Methode die Werte von 'X' und 'Y' erfordert (Koordinaten für die Mitte) ganze Zahlen zu sein . Warum wollen Sie, dass sie Arrays sind? Versuchen Sie, sechs Kreise mit demselben Radius und "stroke_width" (zentriert auf '[75,900]', '[150,1050]' usw.) zu zeichnen? Wenn dem so ist, denke ich, dass du so etwas brauchst: 'a = [75, 150, 325, 500, 675, 750]; b = [900, 1050, 1050, 1050, 1050, 900]; a.zip (b) .Each {| x, y | Kreis x: x, y: y, Radius: 62,5, stroke_width: 2} '. –

Antwort

0

ein Array Squib Giving ordnet sie, um verschiedene Karten, weil Squib Thinks in Arrays.

Ihr Code setzt Kreise auf die anderen Karten.

mehrere Kreise auf der gleichen Karte, so etwas wie dies zu tun:

require 'squib' 

Squib::Deck.new(cards: 6) do 
    background color: :white 
    xs = [75, 150, 325, 500, 675, 750] 
    ys = [900, 1050, 1050, 1050, 1050, 900] 
    (0..5).each do |i| 
    circle x: xs[i], y: ys[i], radius: 62.5, stroke_width: 2 
    end 
    save_png 
end 

Oder Sie die Zip-Antwort in dem Kommentar zu Ihrer Frage verwenden können.

(vollständige Offenlegung. Ich bin die Squib dev)