amethyst / amethyst/rustrogueliketutorial

Chapter 07 - Damage get_available_exits() function errors

Abierto
#140 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
970
Forks
166
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Hello,

I am working through the tutorial you have online for Rust and Rltk. I am on Chapter 07 - Damage and was hitting an error when you had us add
```
fn get_available_exits(&self, idx:usize) -> Vec<(usize, f32)> {
let mut exits : Vec<(usize, f32)> = Vec::new();
let x = idx as i32 % self.width;
let y = idx as i32 / self.width;
let w = self.width as usize;

// Cardinal directions
if self.is_exit_valid(x-1, y) { exits.push((idx-1, 1.0)) };
if self.is_exit_valid(x+1, y) { exits.push((idx+1, 1.0)) };
if self.is_exit_valid(x, y-1) { exits.push((idx-w, 1.0)) };
if self.is_exit_valid(x, y+1) { exits.push((idx+w, 1.0)) };

// Diagonals
if self.is_exit_valid(x-1, y-1) { exits.push(((idx-w)-1, 1.45)); }
if self.is_exit_valid(x+1, y-1) { exits.push(((idx-w)+1, 1.45)); }
if self.is_exit_valid(x-1, y+1) { exits.push(((idx+w)-1, 1.45)); }
if self.is_exit_valid(x+1, y+1) { exits.push(((idx+w)+1, 1.45)); }

exits
}
```

To the BaseMap impl. The error I was receiving was:

```
error[E0053]: method `get_available_exits` has an incompatible type for trait
--> src/map.rs:117:5
|
117 | fn get_available_exits(&self, idx:usize) -> Vec<(usize, f32)> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `smallvec::SmallVec`, found struct `std::vec::Vec`
|
= note: expected fn pointer `fn(&map::Map, _) -> smallvec::SmallVec<[(usize, f32); 10]>`
found fn pointer `fn(&map::Map, _) -> std::vec::Vec<(usize, f32)>`
```

After looking over the source code you provide I found that instead of using Vec like you have in the tutorial you used rltk::SmallVec. After changing my code to use rltk::SmallVec the error went away and I was getting the expected monster behavior.

Just wanted to bring this up in case others have hit this issue.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.