【Java】尝试玩PokeAPI(Pokemon.java篇)

在浏览互联网时,我发现了一个有趣的API,所以就试着玩了一下。

下面是链接到pokeAPI的GitHub页面:https://github.com/oscar0812/pokeapi-v2-java

我特别调查了这个API中的Pokemon类。要使用它,除了在pom.xml中添加以下内容之外,还必须使用Java15或更高版本才能使用。

	<dependency>
  		<groupId>com.github.oscar0812</groupId>
  		<artifactId>pokeapi</artifactId>
  		<version>1.0.0</version>
	</dependency>

使用方法

您可以使用Client类的getPokemonById()或者getPokemonByName()方法来获取宝可梦的信息。

    // ピカチュウの全国図鑑No.で取得
    Pokemon pikachu = Client.getPokemonById(25);
    // ピカチュウの英語名で取得
    Pokemon pikachu = Client.getPokemonByName("pikachu");

Pokemon类的结构

Pokemon.java的结构如下所示:

public class Pokemon extends NamedAPIResource {
	private int id;

	private int base_experience;

	private int height;

	private boolean is_default;

	private int order;

	private int weight;

	private ArrayList<PokemonAbility> abilities;

	private ArrayList<PokemonForm> forms;

	private ArrayList<VersionGameIndex> game_indices;

	private ArrayList<PokemonHeldItem> held_items;

	private String location_area_encounters;

	private ArrayList<PokemonMove> moves;

	private PokemonSprites sprites;

	private PokemonSpecies species;

	private ArrayList<PokemonStat> stats;

	private ArrayList<PokemonType> types;
}

ID

ID指的是在宝可梦中注册的全国图鉴编号。如果是妙蛙种子,它的编号是1;如果是小火龙,编号是4;如果是杰尼龟,编号是7。

经验基础

基础经验值是指注册在宝可梦中的基础经验值。基础经验值会影响通过击败敌人获得的经验值。

从Pokemon.wiki的维基网站上获取到的信息如下:

经验值 = (EXP × A × 等级修正^2.5 + 1) × B × C × D
EXP : 被击败的精灵等级 × 被击败的精灵基础经验值 ÷ 5
等级修正 = (2L + 10) / (L + Lp + 10)
L : 被击败的精灵等级
Lp : 击败该精灵的等级
A : (仅适用于第五代)如果是与训练师对战,则为1.5,否则为1。第七代始终为1
B : 能力胶囊和幸运蛋的影响。经验力加成为1.2,++为1.5,+++为2.0,-为0.8,–为0.66,—为0.5。经验胶囊为1.5
C : 与其他语言版本交换的精灵为1.7,与相同语言版本交换的精灵为1.5,如果是自己的亲亲则为1
D : 拥有幸福蛋则为1.5,否则为1

身高

height是指的宝可梦的身高。

默认值是什么?

isDefault在Pokemon游戏中指的是是否处于通常形态。
例如,代欧奇希斯除了有普通形态之外,还有攻击形态、防御形态和速度形态等多种形态存在。
更多详情请访问以下链接:
https://yakkun.com/bdsp/zukan/n386

体重

「重量」一词是指宝可梦的重量。

才能

abilities(能力)指的是宝可梦拥有的可能性特性的信息,以及与特性相关的信息(例如它是在第几代实现的,是否为梦特性等等)。
例如) 皮卡丘根据个体的不同,可能具有”静电”或者”放电”的特性。

⑦表格

表单指的是不同形态的信息。
例如,由于代欧奇希斯存在多个形态,每个形态的信息都以列表形式存在。

游戏索引

game_indices指的是该宝可梦出现在哪个系列的信息。
例如) 宝可梦红绿、宝可梦金银等。

觉得底物 (Jué de dǐ wù)

held_items是指在野生Pokemon出现时可能携带的物品。
例如,如果是皮卡丘,则可能携带”电球”;如果是幸福蛋,则可能携带”幸福蛋”等。

寻找地点区域的遭遇场景

location_area_encounters是可以获取遇到宝可梦的位置URL的功能。
通过使用这个URL,可以获取每个系列中宝可梦出现的位置数据。

11. 行动

Moves指的是关于宝可梦拥有的“招式”的信息。包括当前已学习的招式、根据当前等级可以学习的招式、可以通过招式学习机和特殊机器学习的招式等信息。

⑫精灵

sprites 是一个可以获取多个 图像 URL 的列表。
例如:正常形态、异色形态、战斗中的队友形象、战斗中的敌方形象等。

⑬物种

物种指的是宝可梦的性别、捕捉难度、亲密度、蛋群等详细数据。

统计

统计数据是指宝可梦的属性值(个体值和努力值)。以皮卡丘为例,H35 A55 B40 C50 D50 S90 是个体值,通过分配努力值可以改变它的各项属性。

⑮种类

types指的是Pokemon的类型。
以上是Pokemon类所拥有的值。

总而言之

这次我尝试以Pokemon为中心来玩。虽然我并没有完全理解其中的所有内容,但感觉好像窥视了游戏的内部一样,很有趣。
我想利用这个API来学习并顺便尝试制作一个WebAPI。
如果有任何错误或者建议,请不吝指正。

bannerAds