amethyst / amethyst/rustrogueliketutorial
Chapter 07 - Damage get_available_exits() function errors
- Linguagem predominante
- Rust
- Estrelas
- 970
- Forks
- 166
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
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.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Avaliação
Esta issue ainda não foi avaliada.