当前位置: 首页 > 知识库问答 >
问题:

如何在游戏中保存ArrayList?

蓝华皓
2023-03-14

这似乎是一个非常基本的问题,但我有一个模型(用户),我想存储一个字符串的ArrayList(它们是其他用户的ID)。我这样声明列表:

 public List<String> friends = new ArrayList<String>();
@Entity
public class User extends Model {

@Id
public String username;
public String password;

public List<String> friends = new ArrayList<String>();

public static Finder<String, User> find = new Finder<String, User>(String.class, User.class);

// Constructor
public User(String username, String password){
    this.username = username;
    this.password = password;
}

// Methods
public void addFriend(String friend){
    friends.add(friend);
}

// Static Methods
public static User authenticate(String username, String password){
    return find.where().eq("username", username).eq("password", password).findUnique();
}

public static void befriend(String user1, String user2){
    User.find.ref(user1).addFriend(user2));
    User.find.ref(user2).addFriend(user1);

    User.find.ref(user1).save();
    User.find.ref(user2).save();
}

控制器方法:

return ok(index.render(
        User.find.byId(request().username()).friends,
));

和一个非常简单的观点:

@(friends: List[User])

<div id="current_friends">
    @for(friend <- friends) {
        @friend.username
    }
</div>

共有1个答案

谯振国
2023-03-14

您需要使用savemanytomanyAssociations(String fieldname)“手动”保存关系,例如:

public static void befriend(String userName1, String userName2){

    User user1 = User.find.byId(userName1);
    User user2 = User.find.byId(userName2);

    user1.friends.add(user2);
    user2.friends.add(user1);

    user1.save();
    user2.save();

    // here...
    user1.saveManyToManyAssociations("friends");
    user2.saveManyToManyAssociations("friends");

}

(注:我写的上面有,所以自己调试吧pls)

 类似资料:
  • 问题内容: 我使用pygame在python中做了一个非常简单的游戏。分数基于玩家所达到的等级。我将级别作为一个名为的变量。我想在游戏开始或结束时显示最高级别。 我会更乐于显示一个以上的分数,但是我看到的所有其他线程都太复杂了,以至于我无法理解,因此请保持简单:我是一个初学者,只需要一个分数。 问题答案: 我建议您搁置。例如: 下次打开程序时,请使用: 它将从磁盘读取。如果需要,可以使用此技术保存

  • 当我试图保存我的Android游戏(通过Android模拟器在我的Windows笔记本电脑上播放),我得到一个。我花了几个小时尝试不同的东西,但仍然感到困惑,因为代码完全适用于我以前的版本,而不是Android系统。

  • 问题内容: 这很简单,我要做的就是为游戏保存高分(整数)。我假设最简单的方法是将其存储在文本文件中,但是我真的不知道如何进行此操作。 问题答案: 如果您只需要存储一个整数,则SharedPreferences最适合您使用: 获得首选项: 当然,用高分值的键和您的偏好的键替换(这些可以是任意的。将它们设置为可识别且独特的东西是很好的)。

  • 抱歉我的问题,我被卡住了。我是lib gdx开发游戏的新手,不要严格评判我。我有我的游戏活动: } 我有两个屏幕: 还有我有暂停按钮的游戏屏幕: 还有我的主要问题--

  • 我正在创建一个Javascript突破游戏,但有一个问题是如何将球保持在墙边界内。 在运行程序时,桨工作正常,在窗口中间创建了一个静态球。直到我设置代码以将球保持在墙壁边界(顶部、左侧和右侧)内,此时,发生了错误,整个程序停止工作。 我尝试了几种if/else变体来修复它,但无法找出代码不起作用的原因。JavaScript代码如下: 非常感谢你的帮助。谢谢!

  • 所以我是Java编码的新手,我对C#有很好的经验,我知道它们非常相似。我目前正在通过创建一个文本冒险游戏来处理Java,游戏使用案例(案例1、案例2、默认等),目前我正在开发一个保存和加载功能,但我不知道如何保存一个使用案例来进一步编码的分支游戏,有人有什么想法吗?