amethyst / amethyst/rustrogueliketutorial

Chapter 07 - Damage get_available_exits() function errors

Ouverte
#140 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
970
Forks
166
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.