嘿,开发人员! ð®
希望你们都过得愉快!我有一些关于helicity.ai
内置的dall e支持
我已经集成了dall-e支持!是的,是的,因此,从现在开始,您可以将精灵URL定义为“查找:某些描述” ,而Helicity.ai将为您生成一个独特的精灵使用dall-e即时。创建独特的自定义图像而无需离开IDE。
我怎么做
- 因此,这一切都发生在 gameObject.js 模块中。每当您制作gameObject的新实例时,此代码都会运行
- 当您将“查找:”字符串放在图像源中时,它将其作为请求,并调用Express 中制作的firebase函数
- firebase函数在 “查找:” 和异步返回image-url之后将字符串抬高时,将其发送回游戏对象。 。
- 使用 * render() *(在游戏循环中自动)绘制游戏对象图像,否则,它只是一个黑匣子
- 保存时数确保如果使用相同的查找描述创建了2个游戏对象,则未对dall e进行多个。例如,炸弹中的管道。
gameObject.js
var savedImages = {};
export class GameObject {
constructor(x, y, width, height, type, imageSrc) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
this.type = type; // can be Used for collision detection
this.image = new Image();
this.image.loaded = false;
//check if imagesrc contains the string lookup:
if (imageSrc.includes("lookup:")) {
//check if the image is already saved
if (savedImages[imageSrc]) {
this.image = savedImages[imageSrc];
this.image.loaded = true;
} else {
//make a post request. this is in html to use XMLHttpRequest
var xhr = new XMLHttpRequest();
xhr.open(
"POST",
"https://us-central1-myaigameengine.cloudfunctions.net/api/Image",
true
);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(
JSON.stringify({
userPrompt: imageSrc.split("lookup:")[1],
})
);
xhr.onreadystatechange = () => {
if (xhr.readyState == 4 && xhr.status == 200) {
//console.log(xhr.responseText);
//get the imageURL from the response
var imageURL = JSON.parse(xhr.responseText).image_url;
this.image = new Image();
this.image.src = imageURL;
this.image.onload = () => {
this.image.loaded = true;
//save the image
savedImages[imageSrc] = this.image;
};
this.image.onerror = () => {
console.error(`Error loading image ${this.imageSrc}`);
};
}
};
}
} else {
this.imageSrc = imageSrc;
this.image = new Image();
this.image.src = imageSrc;
this.image.onerror = () => {
console.error(`Error loading image ${this.imageSrc}`);
};
this.image.onload = () => {
this.image.loaded = true;
};
}
Game.addGameObject(this);
}
update(deltaTime) {
// Overridden by child classes
}
render() {
//draw a black rectangle if there isnt an image else draw it
if (this.image.loaded) {
Renderer.drawImage(this.image, this.x, this.y, this.width, this.height);
} else {
Renderer.context.fillStyle = "black";
Renderer.context.fillRect(this.x, this.y, this.width, this.height);
}
}
}
Firebase函数的明确图像端点
app.post("/Image", async (req, res) => {
//var uuid = req.body.uuid;
var userPrompt = req.body.userPrompt;
//console.log("uuid is " + uuid);
console.log("user prompt is ");
openai
.createImage({
prompt: userPrompt,
n: 1,
size: "256x256",
})
.then((result) => {
image_url = result.data.data[0].url;
console.log(image_url);
res.send({
success: true,
image_url: image_url,
});
});
});
就是这样!
考虑一下 - 需要一个“带上帽子的紫色龙?”的精灵。 ð7©Just Type Lookup:带上顶礼帽和瞧的紫色龙,您的个性化精灵已经准备好在游戏中使用!这很简单! ð²ð
多人游戏支持即将到来!
如果您想谈论并参与开发,请在不和谐中打我!
https://discord.com/invite/H4HkgFmqVp
请继续关注更多更新!快乐编码ð®ð