Lingara Lingara Mwongozo Miongozo API Maktaba Programu Unda Pachika Programu ya wavuti
Lugha: Kiswahili

JVM na Android

Ukurasa huu umetafsiriwa kutoka Kiingereza. Ikiwa hizi mbili zinatofautiana, ukurasa wa Kiingereza ndio sahihi. Soma ukurasa wa Kiingereza

Kifurushi cha mchezaji cha Kotlin huendeshwa kwenye JVM, kwenye kompyuta ya mezani na kwenye Android. Michezo ya Java hutumia kifurushi hicho hicho kupitia facade yake ya Java. Mifano inafuata mchezo wa libGDX, ambao kitanzi chake cha kuchora ni mahali pa asili pa kumaliza matukio, na miito hiyo hiyo inafaa kitanzi chochote cha mchezo.

Ongeza kifurushi na natives zake

Kifurushi na maktaba zake za native ni artifacts tofauti kwenye Maven Central, kwa hivyo ongeza vyote viwili. Mchezo wa kompyuta ya mezani huongeza lingara-embed-natives-desktop, inayobeba maktaba za Windows, macOS na Linux. Moduli ya Android huongeza lingara-embed-natives-android, AAR, badala yake. Katika mradi wa libGDX, natives za kompyuta ya mezani huenda kwenye moduli ya desktop na natives za Android kwenye moduli ya Android.

Mchezo wa Kotlin hutegemea lingara-embed-kotlin; mchezo wa Java hutegemea lingara-embed-java, facade.

Pata tokeni kutoka kwa seva yako

Kifurushi hakishikilii siri kamwe. Kipe njia ya tokeni (token route) ya seva yako mwenyewe na kichwa (header) kinachobeba kipindi cha mchezaji, na kifurushi hutuma kwake kila kinapohitaji tokeni. Seva yako hutengeneza tokeni kwa kifurushi cha seva na kujibu kwa tokeni na muda wake wa kuisha.

Maliza matukio katika kitanzi chako cha kuchora

Kiini huendesha I/O yake ya mtandao kwenye thread yake yenyewe na hakiiti kamwe msimbo wako. Katika kitanzi chako cha kuchora, kwenye thread ya mchezo, maliza kilichowasili, hadi matukio 256 kwa wakati mmoja, na ushughulikie kila moja: sasisho la mazoezi, jibu la NPC linalotiririshwa, hitilafu. Katika Java, kila tukio huenda kwenye method inayolingana ya visitor yako. Funga kifurushi katika hatua ya dispose ya mchezo wako, ambayo husimamisha kiini na kukiachilia.

Tazama mazungumzo ya NPC na matokeo ya mazoezi kwa kile ambacho matukio hayo hubeba.

Lugha ya mfano wa msimbo

Kotlin

// The kit, and the natives for the platform: natives-desktop in a libGDX lwjgl3 module, natives-android in its android module.
implementation("com.getlingara:lingara-embed-kotlin:0.1.0-alpha.6")
implementation("com.getlingara:lingara-embed-natives-desktop:0.1.0-alpha.6")

Java

<!-- The kit, and the natives for the platform (lingara-embed-natives-android in an Android module). -->
<dependency>
  <groupId>com.getlingara</groupId>
  <artifactId>lingara-embed-java</artifactId>
  <version>0.1.0-alpha.6</version>
</dependency>
<dependency>
  <groupId>com.getlingara</groupId>
  <artifactId>lingara-embed-natives-desktop</artifactId>
  <version>0.1.0-alpha.6</version>
</dependency>
Lugha ya mfano wa msimbo

Kotlin

// Your server mints the embed token; the kit POSTs {} here whenever it needs one.
private val lingara =
    LingaraEmbed.start(
        EmbedConfig(
            tokenSource =
                TokenSourceConfig.Http(
                    url = "https://my-game.example/lingara/token",
                    headers = listOf(Header("Authorization", Secret("Bearer $session"))),
                ),
            userAgentSuffix = "my-game/1.4",
        ),
    )

Java

// Your server mints the embed token; the kit POSTs {} here whenever it needs one.
lingara =
    LingaraEmbedJava.builder()
        .httpTokenSource(
            "https://my-game.example/lingara/token",
            Map.of("Authorization", "Bearer " + session))
        .userAgentSuffix("my-game/1.4")
        .build();
Lugha ya mfano wa msimbo

Kotlin

// In render(), on the game thread: one crossing, at most 256 events.
fun render() {
    lingara.drain(256) { event ->
        when (event) {
            is EmbedEvent.Practice -> showPractice(event.snapshot.question?.prompt)
            is EmbedEvent.NpcTurn -> onNpcTurn(event.update)
            is EmbedEvent.Error -> println("Lingara error: ${event.error.message}")
            else -> Unit
        }
    }
}

// In dispose(): stops the core and frees it.
fun dispose() {
    lingara.close()
}

Java

// In render(), on the game thread: one crossing, at most 256 events, each to its visitor method.
void render() {
  lingara.drain(256, event -> LingaraEmbedJava.visit(event, visitor));
}

// In dispose(), or let try-with-resources do it.
@Override
public void close() {
  lingara.close();
}