手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏16之敌人来了

简介: 手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏16之敌人来了

Enemy

Enemy.java

package character;
import managers.InputManager;
import sprite.Animator;
import sprite.Transform;
import java.awt.*;
import java.awt.event.KeyEvent;
public class Enemy extends AttackAbleObject{
    private Animator _animator;
    public Enemy(Animator animator, int hurtx, int hurty, int hurtscale_x, int hurtscale_y
            , int hitoffset_x1, int hitoffset_y1, int hitoffset_x2, int hitoffset_y2){
        super(animator,hurtx,hurty,hurtscale_x,hurtscale_y
                ,hitoffset_x1,hitoffset_y1,hitoffset_x2,hitoffset_y2);
        _animator = animator;
        _animator.setAnimation("idle");
    }
    public void move(double x, double y){
    }
    @Override
    public void update(Graphics2D g){
        _animator.show(g);
    }
    public Transform getTransform(){
        return _animator;
    }
}

因为Enemy能攻击player,也能受到攻击,所以咱们让他继承AttackAbleObject

在GameApp中初始化一个Enemy对象如下:

private Enemy _enemy;
    private Player _player;
    public GameApp(){
        try{
            background = new Background();
            _resLoader.loadAnimations();
            Animator animatorEnemy = new Animator("enemy3");
            _enemy = new Enemy(animatorEnemy,88, 38, 18, 88, // HurtBox
                    93, 54, 50, 11);
            _enemy.getTransform().setOrigin(97, 110);
            _enemy.getTransform().scale(2,2);
            g.setColor(Color.red);
            g.draw(_enemy.getHurtBox());
            g.draw(_enemy.getHitBox());
            _enemy.update(g);

同时我们在Animationlist.xml中新增enemy配置信息:

<enemy3>
        <walk>
            <image>zombie4/02.png</image>
            <image>zombie4/03.png</image>
            <image>zombie4/04.png</image>
            <image>zombie4/05.png</image>
            <image>zombie4/06.png</image>
            <image>zombie4/07.png</image>
            <image>zombie4/08.png</image>
            <image>zombie4/09.png</image>
        </walk>
        <idle>
            <image>zombie4/01.png</image>
            <image>zombie4/01.png</image>
            <image>zombie4/01.png</image>
            <image>zombie4/22.png</image>
            <image>zombie4/22.png</image>
            <image>zombie4/22.png</image>
        </idle>
        <attk>
            <image>zombie4/10.png</image>
            <image>zombie4/11.png</image>
            <image>zombie4/12.png</image>
            <image>zombie4/13.png</image>
            <image>zombie4/14.png</image>
        </attk>
        <block>
            <image>zombie4/23.png</image>
            <image>zombie4/23.png</image>
            <image>zombie4/23.png</image>
            <image>zombie4/23.png</image>
            <image>zombie4/23.png</image>
            <image>zombie4/23.png</image>
        </block>
        <die>
            <image>zombie4/22.png</image>
            <image>zombie4/23.png</image>
            <image>zombie4/36.png</image>
            <image>zombie4/37.png</image>
            <image>zombie4/38.png</image>
            <image>zombie4/39.png</image>
            <image>zombie4/40.png</image>
            <image>zombie4/41.png</image>
            <image>zombie4/41.png</image>
            <image>zombie4/41.png</image>
        </die>
        <dead>
            <image>zombie4/41.png</image>
        </dead>
    </enemy3>

如果您迷路了,请参考完整源码:


项目源码


项目源码

目录
相关文章
|
8天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
21 4
|
6天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
10天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
32 4
|
10天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
50 4
|
9天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
21 0
|
10天前
|
Java API Android开发
kotlin和java开发优缺点
kotlin和java开发优缺点
24 0
|
IDE 小程序 前端开发
详细解读java的俄罗斯方块游戏的源代码--【课程设计】
详细解读java的俄罗斯方块游戏的源代码--【课程设计】
|
Java 定位技术 开发者
基于Java的俄罗斯方块游戏
基于Java的俄罗斯方块游戏
基于Java的俄罗斯方块游戏
|
Java 定位技术
Java---俄罗斯方块小游戏
去年就已经学了这个技术了,一直没去写,现在抽个时间写了个俄罗斯方块游戏。 只有简单的新游戏,暂停,继续,积分功能。简单的实现了俄罗斯的经典功能。 不介绍了,有兴趣的自己运行一下,后面贴出了图片。
1022 0