libgdx实现雪花、下雪效果(二十三)

libgdx实现雪花、下雪效果(二十三)

转自:https://lingkang.top/archives/libgdx-shi-xian-xue-hua
libgdx实现雪花、下雪效果(二十三)_第1张图片

package effect;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.ScreenUtils;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

/**
 * @author lingkang
 * created by 2023/11/14
 */
public class SnowflakeDemo extends ApplicationAdapter {
    @Test
    public void test() {
        Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
        config.setForegroundFPS(30);
        config.setTitle("yzcy");
        config.setWindowedMode(800, 600);
        new Lwjgl3Application(this, config);
    }


    protected SpriteBatch batch;
    protected Texture texture;
    Random random = new Random();
    protected List<SnowflakeSprite> sprites = new ArrayList<>(300);
    protected long count = 0;

    @Override
    public void create() {
        batch = new SpriteBatch();
        // 雪花图片, 20x20大小
        texture = new Texture(Gdx.files.classpath("img/bg/xh.png"));
    }


    @Override
    public void render() {
        ScreenUtils.clear(Color.WHITE);

        batch.begin();
        Iterator<SnowflakeSprite> iterator = sprites.iterator();
        while (iterator.hasNext()) {
            SnowflakeSprite sprite = iterator.next();
            batch.draw(sprite, sprite.x, sprite.y, sprite.getWidth(), sprite.getHeight());
            sprite.y = sprite.y - sprite.speed;// 下落
            sprite.x = sprite.x + sprite.move;
            if (sprite.y < -20) {
                iterator.remove();
            }
        }
        batch.end();

        // 控制生成速度
        if (count > 2)
            generate();
        else
            count++;
    }

    private void generate() {
        count = 0;
        SnowflakeSprite sprite = new SnowflakeSprite(texture);
        float size = random.nextFloat(5f, 22f);
        sprite.setSize(size, size);
        sprite.x = random.nextInt(800);
        sprite.y = 630;
        sprite.speed = random.nextInt(3, 7);
        sprite.move = random.nextInt(-1, 1);
        // 设置模糊
        // sprite.setColor(1,0,0,random.nextFloat(0.01f,1f));
        sprites.add(sprite);
    }

    class SnowflakeSprite extends Sprite {
        public SnowflakeSprite(Texture texture) {
            super(texture);
        }

        public int x;
        public int y;
        public int move;
        public int speed;
    }

    @Override
    public void dispose() {
        batch.dispose();
        texture.dispose();
    }
}

依赖


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>top.lingkanggroupId>
    <artifactId>yzcyartifactId>
    <packaging>jarpackaging>
    <version>1.0.0version>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <gdx.version>1.12.0gdx.version>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdxartifactId>
            <version>${gdx.version}version>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-backend-lwjgl3artifactId>
            <version>${gdx.version}version>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-platformartifactId>
            <version>${gdx.version}version>
            <classifier>natives-desktopclassifier>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-freetypeartifactId>
            <version>${gdx.version}version>
        dependency>
        
        <dependency>
            <groupId>com.badlogicgames.gdxgroupId>
            <artifactId>gdx-freetype-platformartifactId>
            <version>${gdx.version}version>
            <classifier>natives-desktopclassifier>
        dependency>

        
        <dependency>
            <groupId>org.junit.jupitergroupId>
            <artifactId>junit-jupiter-apiartifactId>
            <version>5.10.1version>
            <scope>testscope>
        dependency>

        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>2.0.9version>
        dependency>
        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-simpleartifactId>
            <version>2.0.9version>
        dependency>
        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>1.18.30version>
            <scope>providedscope>
        dependency>
        
        <dependency>
            <groupId>com.alibaba.fastjson2groupId>
            <artifactId>fastjson2artifactId>
            <version>2.0.42version>
        dependency>
        
        <dependency>
            <groupId>cn.hutoolgroupId>
            <artifactId>hutool-coreartifactId>
            <version>5.8.22version>
        dependency>
    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.8.1version>
                <configuration>
                    <source>17source>
                    <target>17target>
                    
                    
                configuration>
            plugin>
        plugins>
    build>

    <repositories>
        <repository>
            <id>tencentid>
            <name>tencentname>
            <layout>defaultlayout>
            <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/url>
            <snapshots>
                <enabled>falseenabled>
            snapshots>
            <releases>
                <enabled>trueenabled>
            releases>
        repository>
        <repository>
            <id>nexus1id>
            <name>Nexus1name>
            <layout>defaultlayout>
            <url>https://oss.sonatype.org/content/repositories/snapshotsurl>
            <snapshots>
                <enabled>trueenabled>
            snapshots>
            <releases>
                <enabled>falseenabled>
            releases>
        repository>
        <repository>
            <id>nexusid>
            <name>Nexusname>
            <layout>defaultlayout>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshotsurl>
            <snapshots>
                <enabled>trueenabled>
            snapshots>
            <releases>
                <enabled>falseenabled>
            releases>
        repository>
        <repository>
            <id>aliyunmavenid>
            <url>https://maven.aliyun.com/repository/publicurl>
            <releases>
                <enabled>trueenabled>
            releases>
            <snapshots>
                <enabled>falseenabled>
            snapshots>
        repository>
    repositories>
project>

你可能感兴趣的:(libgdx,游戏开发,java,libgdx,java,java游戏开发)