From 1f7c5b28f8182251f0c3c340f99921ea63f67402 Mon Sep 17 00:00:00 2001 From: andreja6 Date: Tue, 24 Apr 2018 20:24:34 -0700 Subject: [PATCH] Test of forward button --- BaseButtonInstance.cpp | 5 +++++ BaseButtonInstance.h | 2 ++ ImageButtonInstance.cpp | 2 +- main.cpp | 26 +++++++++++++++++++++++++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/BaseButtonInstance.cpp b/BaseButtonInstance.cpp index c8968e8..fac54ed 100644 --- a/BaseButtonInstance.cpp +++ b/BaseButtonInstance.cpp @@ -16,6 +16,11 @@ BaseButtonInstance::~BaseButtonInstance(void) delete listener; } +void BaseButtonInstance::setButtonListener(ButtonListener* buttonListener) +{ + listener = buttonListener; +} + void BaseButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown){} bool BaseButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd){return false;} diff --git a/BaseButtonInstance.h b/BaseButtonInstance.h index 1f96f93..6cff6bf 100644 --- a/BaseButtonInstance.h +++ b/BaseButtonInstance.h @@ -2,6 +2,7 @@ #include "instance.h" #pragma once #include "ButtonListener.h" +class ButtonListener; class BaseButtonInstance : public Instance { public: @@ -10,6 +11,7 @@ public: virtual void drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown); virtual bool mouseInButton(float, float, RenderDevice* rd); virtual void onMouseClick(); + void setButtonListener(ButtonListener*); bool floatBottom; bool floatRight; bool floatCenter; diff --git a/ImageButtonInstance.cpp b/ImageButtonInstance.cpp index cf0d42d..58a579f 100644 --- a/ImageButtonInstance.cpp +++ b/ImageButtonInstance.cpp @@ -134,6 +134,6 @@ void ImageButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouse rd->popState(); if(drawDisabledBox) { - Draw::box(Box(Vector3(positionRelative.x, positionRelative.y, 0), Vector3(positionRelative.x+size.x, positionRelative.y+size.y, 0)), rd, Color4(0.7,0.7,0.7,0.3), Color4::clear()); + Draw::box(Box(Vector3(positionRelative.x, positionRelative.y, 0), Vector3(positionRelative.x+size.x, positionRelative.y+size.y, 0)), rd, Color4(0.7F,0.7F,0.7F,0.3F), Color4::clear()); } } \ No newline at end of file diff --git a/main.cpp b/main.cpp index bc935e9..8239bb4 100644 --- a/main.cpp +++ b/main.cpp @@ -66,6 +66,11 @@ Instance* selectedInstance = NULL; This simple demo applet uses the debug mode as the regular rendering mode so you can fly around the scene. */ + + + + + class Demo : public GApplet { public: @@ -135,6 +140,8 @@ class App : public GApp { HWND mainHWnd; }; +App *usableApp = NULL; + HWND App::getHWND() { return hwnd; @@ -225,6 +232,20 @@ ImageButtonInstance* makeImageButton(G3D::TextureRef newImage = NULL, G3D::Textu } + +class ForwardButtonListener : public ButtonListener { +public: + void onButton1MouseClick(BaseButtonInstance*); +}; + +void ForwardButtonListener::onButton1MouseClick(BaseButtonInstance*) +{ + + CoordinateFrame frame = usableApp->renderDevice->getCameraToWorldMatrix(); + cameraPos = Vector3(cameraPos.x, cameraPos.y, cameraPos.z) + frame.lookVector()*2; +} + + void initGUI() { TextButtonInstance* button = makeTextButton(); @@ -353,6 +374,7 @@ void initGUI() button->setAllColorsSame(); ImageButtonInstance* instance = makeImageButton(go, go_ovr, go_dn); + instance->name = "go"; instance->size = Vector2(65,65); instance->position = Vector2(6.5, 25); instance->parent = dataModel; @@ -429,7 +451,7 @@ void initGUI() instance->floatRight = true; instance->position = Vector2(-77, -90); instance->parent = dataModel; - instance->disabled = true; + instance->setButtonListener(new ForwardButtonListener()); instance = makeImageButton( Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut.png")), @@ -1130,6 +1152,7 @@ void Demo::onGraphics(RenderDevice* rd) { void App::main() { + usableApp = this; setDebugMode(false); debugController.setActive(false); // Load objects here @@ -1262,6 +1285,7 @@ int main(int argc, char** argv) { if(hwndMain == NULL) { MessageBox(NULL, "Failed to create HWND","Dynamica Crash", MB_OK); + return 0; } SetParent(hwnd, hwndMain); App app = App(settings, wnd, hwndMain, wnd);