У меня есть три класса, которые я пытаюсь связать вместе для своей игры.Я пытаюсь сделать так, чтобы, если Player1 наступит на определенный тип плитки, переменная гравитации Player1 "AccelY" изменится, обеспечивая эффект лифта и подъем игрока вверх по вертикали.Класс инициализации создает объект Player1.(Существует только один проигрыватель, поэтому его можно применить ко всему классу). Это включает заголовочные файлы для CEntity.h и CPlayer.h через CApp.h основной класс контроллера.Класс CPlayer является дочерним классом CEntity.Accel Y публично объявлен в CEntity как поплавок без начального значения.Я хочу изменить его в CPlayer, когда игрок находится на плитке такого типа.Я поместил оператор if в файл Tile.h, но не могу получить доступ и обновить значение, используя следующий код?Сначала я попытался с помощью конструктора класса по умолчанию, но попробовал с функцией, как показано ниже.
CTILE.CPP
#include "CTile.h"
#include "CPlayer.h"
CTile::CTile(){
TileID = 0;
TypeID = TILE_TYPE_NONE;
if(TypeID == TILE_TYPE_LIFT){
CPlayer::LiftTile(0.75f, 10.0f);
//CPlayer::AccelY = 0.75f;
//CPlayer.SpeedY = 2.0;
}
}
CPLAYER.H
public:
CPlayer();
void LiftTile(float x, float y);
CPLAYER.CPP
void CPlayer::LiftTile(float x, float y){
SpeedY = x;
AccelY = y;
}