2010-09-23 15 views
16

Android için bir futbol oyunu geliştirmeye hazırız.Sonlu Durum Makinesi (FSM) ve Android'in Java

AI'nin karmaşıklığı nedeniyle, gerçekten bir canavar anahtarıyla değil, bir FSM (Sonlu Durum Makinesi) kullanarak tasarlamaya ihtiyacım olduğunu düşünüyorum.

Google'da Java ile yazılmış bazı FSM'leri buldum, ancak Android ile açıkça uyumlu bir şey bulunamadı: Bu platform için daha önce FSM kullanan birisinin var mı diye merak ediyorum.

+0

tarafından Engine Eğer maven ile inşa ediyorsunuz edilir? –

cevap

2

Android, Android mesaj Kuyruğu ile bütünleşen dahili bir Hiyerarşik Durum Makinesi'ne (HSM) sahiptir.

Bu, dahili olduğundan SDK'dan açıkça erişemezsiniz.

Ancak, Apache 2.0 lisansının şartlarını takip ederseniz, kendi versiyonunuzu oluşturabilirsiniz.
https://android.googlesource.com/platform/frameworks/base/+/gingerbread-release/core/java/com/android/internal/util/HierarchicalStateMachine.java

Düzenleme: Bu sınıf artık StateMachine denir
.

+0

Kendi kendime yapıyorum. Kod halinde bir durum geçiş tablosu bildirmek istedim. https://github.com/olibye/guvna – byeo

8

Birkaç ay önce Android için bir FSM arıyordum ama uygun bir şey bulamadım, bu yüzden kendi başımı yaratmam gerekiyordu.

Şimdi birkaç projede kullandım ve oldukça mutluyum. Kodu daha temiz hale getirir ve kullanımı kolaydır. Birisi hala java için bir durum makinesi arıyorsa, EasyFlow'u kontrol edin. Projeye ayrıca contribute yapabilirsiniz.

+0

proje artık desteklenmiyor, zamanımı boşa harcamışım –

+0

Bu http://stackoverflow.com/a/43964422/2267723 adresine bir göz atın –

1

Android'de kullanılan ve Google tarafından sağlanan bu durum makinesi (FSM) uygulaması iyi bir seçenek gibi görünüyor. here on Github'u alabilirsiniz.

Durumları tanımlamak için StateMachine sınıfını kullanabilirsiniz; başlangıç ​​durumu, bir duruma girdiğinizde veya çıkış yaptığınızda görevleri gerçekleştirdiğinizde, örneğin zaman aşımlarını uygulamak için olayları ve gecikmeli olayları gönderebilirsiniz.

Diğer pek çok alternatif bulamadım, ancak bu uygulama aradığım tüm özellikleri içeriyor. Bu Android projesinin bir parçası, bu yüzden bu iyi test edilmiş olduğunu farz ediyorum. Umarım bu yardım.

0

başka açık kaynak seçeneği @doridori