Java 07 example

本文深入探讨了游戏开发领域的实践技巧,并结合AI音视频处理技术,通过具体实例展示了如何在游戏开发中应用这些技术。从游戏引擎的选择到AI智能角色的实现,再到音视频特效的优化,本篇将为您揭示游戏开发与AI音视频处理的融合之道。

留下两个例子作为参考,

1. 追逐小方块的例子

2. HashMap 和 Iterator 的例子

 

Example one:

aimage

import acm.graphics.*;
import acm.program.*;
import java.awt.*;
import java.awt.event.*;

public class TargetSeeker extends GraphicsProgram {

/* private constants */
    private static final int TARGET_SIZE = 10;
    private static final int SEEKER_SIZE = 20;
    private static final int PAUSE_TIME = 10;
    
    public void run() {
        initTarget();
        initSeeker();
        addMouseListeners();
        
        while (true) {
            seek();
        }
    }
    
    private void initTarget() {
        targetSquare = new GRect(TARGET_SIZE, TARGET_SIZE);
        targetSquare.setColor(Color.red);
        targetSquare.setFilled(true);
        targetX = getWidth() / 2;
        targetY = getHeight() / 2;
        add(targetSquare, targetX - TARGET_SIZE/2, targetY - TARGET_SIZE/2);
    }
    
    private void initSeeker() {
        seeker = new GRect(SEEKER_SIZE, SEEKER_SIZE);
        add(seeker, 0, 0);
    }

    private int moveAmount(double seekerPos, double targetPos) {
        int amount = 0;
        if (targetPos > seekerPos) {
            amount = 1;
        } else if (targetPos < seekerPos) {
            amount = -1;
        }
        return amount;
    }
    
    private void seek() {
        pause(PAUSE_TIME);
        double seekerMidX = seeker.getX() + SEEKER_SIZE / 2;
        int dx = moveAmount(seekerMidX, targetX);
        double seekerMidY = seeker.getY() + SEEKER_SIZE / 2;
        int dy = moveAmount(seekerMidY, targetY);
        
        seeker.move(dx, dy);
    }
    
    public void mouseClicked(MouseEvent e) {
        targetX = e.getX();
        targetY = e.getY();
        remove(targetSquare);
        add(targetSquare, targetX - TARGET_SIZE/2, targetY - TARGET_SIZE/2);
    }
    
/* private instance variable */
    private int targetX;
    private int targetY;
    private GRect targetSquare;
    private GRect seeker;
}

 

Example two:

public void PrintMatchingKeys(HashMap<String, String> map) {
        ArrayList<String> keys = new ArrayList<String>();
        Iterator<String> it = map.keySet().iterator();
        while (it.hasNext()) {
            // keys is array list, it is the key (String type) of map
            keys.add(it.next());
        }
        // Reset "it" iterator to allow us to iterate over keys again
        it = map.keySet().iterator();
        while (it.hasNext()) {
            String key = it.next();
            String value = map.get(key);
            // of course contain
            if (key.contains(value)) {
                println(key + ": " + value);
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值