Is there a way to attach an image and a string to it in an array? This would help a lot for games that have lots of bad guys!
I assume you’re doing an array that has both the enemy’s sprite and name? I haven’t managed to make that work in any way but you could just do separate arrays
in JS you can do something like:
const enemies = [
[assets.image`enemy1`, "enemy 1"],
[assets.image`enemy2`, "enemy 2"],
[assets.image`enemy3`, "enemy 3"]
]
const enemySprites: Sprite[] = []
for (const enemy of enemies) {
const enemySprite = sprites.create(enemy[0] as Image, SpriteKind.Enemy)
enemySprite.data = enemies[1] as string
enemySprites.push(enemySprite)
}
or:
interface rawEnemy = { image: Image, name: string }
const enemies = [
{ image: assets.image`enemy1`, name: "enemy 1" },
{ image: assets.image`enemy2`, name: "enemy 2" },
{ image: assets.image`enemy3`, name: "enemy 3" }
]
const enemySprites: Sprite[] = []
for (const enemy of enemies) {
const enemySprite = sprites.create(enemy.image, SpriteKind.Enemy)
enemySprite.data = enemies.name
enemySprites.push(enemySprite)
}
in js, I don’t think you can do much unless somebody makes a to type function (currently trying)
If you’re using blocks, you could use @richard 's better-sprite-data extension:
I haven’t tested it out for objects, but it does say on the awesome arcade that it “expands upon the built-in sprite data extension by providing more types including tilemap locations, functions, and the array versions of the base types that can be stored not only on sprites but also the tilemap locations on the current tilemap and an “object”, replacing the arcade-block-objects extension.”
If you’re using like JS/TS you can just use an interface like this:
interface EnemyData {
name: string
image: Image
health: number
damage: number
speed: number
}
//----
let enemyTypes: EnemyData[] = [
{
name: "Goblin",
image: img`...`,
health: 20,
damage: 5,
speed: 80
},
{
name: "Slime",
image: img`...`,
health: 10,
damage: 2,
speed: 40
},
{
name: "Knight",
image: img`...`,
health: 100,
damage: 20,
speed: 30
}
]
you know js right because u made an extension so use classes
Hmm.. I’ve never seen the improved sprite data extension. Can’t wait to try it out!
Me say hello, me now say goodbyeMe say hello, me now say goodbye. ![]()