Eu Help
- Posted by Icy_Viking Oct 30, 2017
- 1426 views
Trying to get this example to work, but I cannot get the Euphoria version working of my program. When I hit the ESC key, the program does not close.
C Example
#include <cirrlicht/cirrlicht.h> #include <stdio.h> #include <wchar.h> irrISceneNode sphere; IRR_F32 deltaTime; IRR_F32 MOVEMENT_SPEED; IRR_BOOL isWPressed; IRR_BOOL isAPressed; IRR_BOOL isSPressed; IRR_BOOL isDPressed; void handleInpunt() { irrSEvent evt; irrVector3df pos = irrVector3dfNew(0,0,0); irrISceneNodeGetPosition(sphere,pos); evt = irrSEventNew(); while(irrIrrlichtDevicePopEvent(evt)) { if(irrSEventIsKeyboardInputEvent(evt)) { irrSKeyInput keyInput = irrSEventGetKeyInput(evt); irr_EKEY_CODE keyCode = irrSKeyInputGetKey(keyInput); if(irrEKeyCodeEqual(keyCode,irr_EKEY_CODE_KEY_KEY_V()) && irrSKeyInputIsPressed(keyInput)==false) { irrISceneNodeSetVisible(sphere,!irrISceneNodeIsVisible(sphere)); printf("irrISCeneNodeSetVisible\n"); } if(irrEKeyCodeEqual(keyCode,irr_EKEY_CODE_KEY_KEY_W())) isWPressed = irrSKeyInputIsPressed(keyInput); else if(irrEKeyCodeEqual(keyCode,irr_EKEY_CODE_KEY_KEY_S())) isSPressed = irrSKeyInputIsPressed(keyInput); else if(irrEKeyCodeEqual(keyCode,irr_EKEY_CODE_KEY_KEY_A())) isAPressed = irrSKeyInputIsPressed(keyInput); else if(irrEKeyCodeEqual(keyCode,irr_EKEY_CODE_KEY_KEY_D())) isDPressed = irrSKeyInputIsPressed(keyInput); } } if(isWPressed) irrVector3dfSetY(pos,irrVector3dfGetY(pos)+deltaTime*MOVEMENT_SPEED); if(isSPressed) irrVector3dfSetY(pos,irrVector3dfGetY(pos)-deltaTime*MOVEMENT_SPEED); if(isAPressed) irrVector3dfSetX(pos,irrVector3dfGetX(pos)-deltaTime*MOVEMENT_SPEED); if(isDPressed) irrVector3dfSetX(pos,irrVector3dfGetX(pos)+deltaTime*MOVEMENT_SPEED); irrISceneNodeSetPosition(sphere,pos); irrSEventDelete(evt); irrVector3dfDelete(pos); }
Eu Example
include std/machine.e include EuIrr.ew constant TRUE = 1, FALSE = 0 atom deltatime atom dims = irrDimension2duNew(800,600) atom campos = irrVector3dfNew(0,30,-40) atom camat = irrVector3dfNew(0,5,0) atom driver,smgr,gui atom col = irrSColorNew(255,100,100,100) atom Wpressed = 0 atom Apressed = 0 atom Spressed = 0 atom Dpressed = 0 atom Escpressed = 0 procedure handleInput() atom evt = irrSEventNew() while irrIrrlichtDevicePopEvent(evt) do if (irrSEventIsKeyboardInputEvent(evt)) then atom keyInput = irrSEventGetKeyInput(evt) atom keyCode = irrSKeyInputGetKey(keyInput) if (irrEKeyCodeEqual(keyCode,irrEKeyCodeKeyEscape()) and not irrSKeyInputIsPressed(keyInput) = FALSE) then Escpressed = irrSKeyInputIsPressed(keyInput) end if end if end while if Escpressed = TRUE then irrIrrlichtDeviceClose() end if irrSEventDelete(evt) end procedure irrCreateDevice(dims,FALSE,TRUE,FALSE) if irrIrrlichtDeviceWasCreated() = -1 then puts(1,"Failed to create device!\n") abort(0) end if driver = irrIrrlichtDeviceGetVideoDriver() smgr = irrIrrlichtDeviceGetSceneManager() gui = irrIrrlichtDeviceGetGUIEnviroment() irrIrrlichtDeviceSetWindowsCaption("Node") atom cube = irrISceneManagerAddCubeSceneNode(smgr,10) cube = irrIMeshSceneNodeGetSceneNode(cube) irrISceneNodeSetMaterialFlag(cube,irr_video_EMF_LIGHTING(), FALSE) atom driverName = irrIVideoDriverGetName(driver) atom xtimer = irrIrrlichtDeviceGetTimer() atom last = irrITimerGetTime(xtimer) irrISceneManagerAddCameraSceneNode(smgr,irrISceneNodeNull(),campos,camat,TRUE) while irrIrrlichtDeviceRun() do atom now = irrITimerGetTime(xtimer) atom fps deltatime = (now - last) / 1000 last = now fps = irrIVideoDriverGetFPS(driver) --printf(1,"FPS: %d : %d",{driverName,fps}) irrIVideoDriverBeginScene(driver,TRUE,TRUE,col) irrISceneManagerDrawAll(smgr) irrIVideoDriverEndScene(driver) handleInput() end while irrDimension2duDelete(dims) irrSColorDelete(col) irrVector3dfDelete(campos) irrVector3dfDelete(camat) irrIrrlichtDeviceDrop()