小编Kaa*_*reZ的帖子

透明PNG在LWJGL中不透明

我有一个透明背景的PNG,我正在尝试使用LWJGL显示它.但它不是透明背景,而是带有黑色不透明背景.我正在遵循"太空入侵者"示例中的代码.

这是我的代码.我为它的长度道歉,但我无法进一步削减它仍然显示图形."ball.png"是具有透明背景的256x256图像.

package com.ziroby.kata.bouncingBalls;

import static org.lwjgl.opengl.GL11.*;
import org.lwjgl.opengl.Display;

import java.awt.*;
import java.awt.color.ColorSpace;
import java.awt.image.*;
import java.io.IOException;
import java.net.URL;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.Hashtable;
import javax.swing.ImageIcon;

public class Game {

public void start() throws Exception {
    Display.setInitialBackground(0.5f, 0.5f, 0.5f);
    Display.create();

    // enable textures since we're going to use these for our sprites
    glEnable(GL_TEXTURE_2D);

    glMatrixMode(GL_PROJECTION);

    glOrtho(0, 800, 600, 0, -1, 1);
    glMatrixMode(GL_MODELVIEW);

    getTexture("ball.png");

    // clear screen
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // translate to the right location and prepare to draw
    glTranslatef(300, …
Run Code Online (Sandbox Code Playgroud)

java opengl lwjgl

3
推荐指数
1
解决办法
5125
查看次数

Java - 如何继续运行异常

这个问题看起来很简单.如何在异常上继续运行我的应用程序.

例如,我将如何做到这一点.

服务器应用程序尝试在端口1234上运行,但它不可用.通常它会崩溃.但我怎么能让它继续运行并说出来; 你想尝试另一个港口吗?

或者,如果我们正在尝试加载不存在的文件.如何避免程序崩溃,只是显示一条消息说它无法加载文件.

这是怎么做到的?

java exception-handling exception

2
推荐指数
1
解决办法
3176
查看次数

删除指针和对象

如何删除指针及其指向的对象?

下面的代码会删除对象吗?

Object *apple;
apple = new Object();

delete apple;
Run Code Online (Sandbox Code Playgroud)

如果指针没有删除,并且超出范围会发生什么?

Object *apple;
apple = new Object();
Run Code Online (Sandbox Code Playgroud)

这可能是一个非常基本的问题,但我来自Java.

c++

2
推荐指数
2
解决办法
1万
查看次数

std :: list按索引删除元素

我有一个充满对象的std :: list。每当添加对象时,我都希望将该对象索引存储在列表中,因此以后可以将其从列表中删除。

我想用伪代码做什么

myList.pushBack(element);
int index = myList.getIndexOfLastElement();

myList.erase(index);
Run Code Online (Sandbox Code Playgroud)

由于性能原因,我无法按价值搜索。

澄清 一下我有元素a(索引0),b(索引1),c(索引2),d(索引3)

如果删除元素b,我仍然希望能够通过2访问c。

c++ indexing list std c++11

2
推荐指数
1
解决办法
6821
查看次数

地图越长越慢

地图会越长越慢吗?我不是在谈论迭代它,而是像.find() .insert()和的操作.at().

例如,如果我们有map<int, Object> mapA100'000'000个元素,map<int, Object> mapB并且只包含100个元素.

会不会有什么区别表现明智的执行mapA.find(x)mapB.find(x)

c++ performance unordered-map c++11

2
推荐指数
1
解决办法
375
查看次数

Java ArrayList indexOf返回-1

我的代码有一个奇怪的问题.

下面是我测试Chunk类的代码:

List<Chunk> chunks = new ArrayList<Chunk>();
chunks.add(new Chunk(1,1,1));
System.out.println(chunks.indexOf(new Vector3i(1, 1, 1)));
Run Code Online (Sandbox Code Playgroud)

这里是Chunk类的equals方法:

public boolean equals(Object object) {
    System.out.println("Test _1_");
    if (object != null && object instanceof Vector3i) {
        System.out.println("Test _2_");
        if((this.x == ((Vector3i) object).x)&&(this.y == ((Vector3i) object).y)&&(this.z == ((Vector3i) object).z)) {
            System.out.println("Test _3_");
            return true;
        }
    }
    System.out.println("Test _4_");

    return false;
}
Run Code Online (Sandbox Code Playgroud)

Vector3i:

public class Vector3i {
    public int x;
    public int y;
    public int z;


    public Vector3i(int x, int y, int z) {
        this.x = x;
        this.y …
Run Code Online (Sandbox Code Playgroud)

java equals arraylist indexof

0
推荐指数
1
解决办法
161
查看次数

在指针中存储无符号整数

我正在构建一个八叉树数据结构,为了节省最终节点的内存,我希望将值直接存储在指针中,而不是必须创建一个容纳8个子节点的对象.

我的数据类型是uint32_t,这意味着指针有足够的位来将其保存在x86或amd64上.

那么如何在x86或amd64指针中存储无符号32位整数?

伪代码:

uint32_t i = 123;
Octree* ptr = i;
uint32_t ii = ptr;
std::cout << ii << std::endl; //Prints 123
Run Code Online (Sandbox Code Playgroud)

这怎么可能?

c++ pointers casting unsigned-integer

0
推荐指数
1
解决办法
475
查看次数