Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Πάλι στο σκάκι

Έχω κάνει το σκάκι είναι εδώ https://github.com/k33theod/chess-2-players-javascript 😀

Κάνω το ίδιο με τις κινήσεις drag n drop και έχω το εξής πρόβλημα όταν μέσα σε ένα τετράγωνο υπάρχει κάποιο άλλο πούλι ο προορισμός του event δεν είναι πια το τετράγωνο αλλά το άλλο πούλι το οποίο καλύπτει το μεγαλύτερο μέρος της επιφάνειας του τετράγωνου

Έχω κάνει και ένα βίνεο που φαίνεται στην consola το πρόβλημα.

 

Το έχει συναντήσει κανείς;

Επισκέπτης
Δημοσ. (επεξεργασμένο)

Λέω εγώ τώρα σκέψη.

Ο στόχος δε θα πρέπει να είναι το πιόνι αλλά το τετράγωνο που είναι το πιόνι που θες να φας.

Και όταν εκτελείται το drop event βλέπεις τι υπάρχει πάνω στο τετράγωνο-προορισμό και ξεκινάς ελέγχους:

Είναι δικό μου κομμάτι ή του αντιπάλου;

Μπορώ να το φάω ή όχι;

Και πάει λέγοντας

 

 

Επεξ/σία από Επισκέπτης
Δημοσ.

Ευχαριστώ Κώστα

Έτσι το κάνω. Το πρόβλημα είναι ότι πάνω στο τετράγωνο υπάρχει ένα πιόνι που καλύπτει το τετράγωνο στο μεγαλύτερο μέρος του. Όταν κουνάω κάτι στο τετράγωνο το ev.target του drag n drop γίνεται το πιόνι και όχι το τετράγωνο. Πρέπει να το πάω κάπου στην άκρη για να δουλέψει. Αυτό που κάνω στη δεύτερη προσπάθεια στο βίντεο.

Η λογική που θα δούλευε είναι if event.target == pioni τότε event.target=pioni.parentNode αυτό όμως δεν μπορεί να γίνει δεν μπορώ να αλλάξω το event.target. Τουλάχιστον το προσπάθησα και δεν το κατάφερα ακόμα.

Δημοσ.

Μια περίπτωση θα ήταν στη διάρκεια του drag event να είναι τα td > .pioni width 0, height:0 overflow: visible αλλά καλύτερα φυσικά να λύσεις το θέμα με τον 2ο τρόπο που αναφέρεις, υπάρχει κάπου το branch με d&d ?

Δημοσ.

Ευχαριστώ

Τελικά το έλυσα με πατέντα φυσικά.

Αφού δεν με αφήνει να αλλάξω το target δημιούργησα ένα νέο έτσι  if event.target == pioni τότε event.new_target=pioni.parentNode χρειάστηκε μετά βέβαια να γράψω κάποια γραμμές ακόμα αλλά έχω μια λειτουργική έκδοση https://github.com/k33theod/chess-2-players-javascript-drag-n-drop

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...