mecwerks / ioq3-ios Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ioquake/ioq3
License: GNU General Public License v2.0
This project forked from ioquake/ioq3
License: GNU General Public License v2.0
These issues were reported by @zturtleman
@alexey12424323
I would suggest using my ioq3-ios port. It's based off of sethk's iOS port but im going to be updating it. Currently the menu's use an absolute cursor value to move the menu cursor and releaseing the touch does a button press on the button your over top of, also movement (and soon to be looking) is gradual dependent on how far you push the joystick forward. Soon looking will be able to be set between sliding across screen and using a joypad to look. Currently there is no shoot button but that will be fixed.
Also if your interested you can use spearmint-ios which is based off of zturtleman's engine which adds splitscreen support to other devices and other fixes and improvements. It also pulls iOS stuff from ioq3-ios so the same features are supported.
Hope i helped some,
~Marcus
Need to add in-game options to be able to change the sensitivity of the move/look joypads
iOS Touch buttons need to be drawn automatically. Currently the main menu works okay with the current implementation but it is still a little offset from how it should be, and bitmaps do not draw correctly at all.
The iDevice is held with the home button on the left side, and the problem is that Quake3 draws things from the top-left corner, x is horizontal and y is vertical. However on iOS, CG* functions draw based on drawing from the top-right, x is vertical and y is horizontal.
Here is the current math being done to translate the coordinates:
/*
=================
Text_TouchValues
=================
*/
void Text_TouchValues ( menutext_s *item, button_s *button ) {
char buff[512];
float nx;
int width;
int charw;
int charh;
if (item->generic.name)
strcpy(buff, item->generic.name);
else if (item->string)
strcpy(buff, item->string);
else
return;
if (item->style & UI_SMALLFONT) {
charw = SMALLCHAR_WIDTH;
charh = SMALLCHAR_HEIGHT;
} else if (item->style & UI_GIANTFONT) {
charw = GIANTCHAR_WIDTH;
charh = GIANTCHAR_HEIGHT;
} else {
charw = BIGCHAR_WIDTH;
charh = BIGCHAR_HEIGHT;
}
nx = item->generic.x;
width = strlen(buff) * charw;
switch (item->style & UI_FORMATMASK) {
case UI_CENTER:
// center justify at x
nx += width / 2;
break;
case UI_RIGHT:
// right justify at x
nx += width;
break;
default:
// left justify at x
break;
}
// in trap_DrawTouchArea, x and y are flipped, w and h are flipped
button->x = nx * uis.xscale + uis.bias;
button->y = (float)item->generic.y * uis.yscale;
button->w = (float)width;
button->h = (float)charh;
button->menu = item->generic.parent->id;
button->id = item->generic.id;
}
Help would be apreciated :)
This would be helpful when changing sensitivity in the options or enabling/disabling other options.
Is this possible?
May have to set it up like the touch buttons using a limited amount being allowed to display at one time.
After the control system and UI touch system are (at least mostly) done, merge the changes into Spearmint.
The currently implementation of the looking joypad just uses standard key presses to look around. This needs to be made so that it can be changed between gradual like the move joypad, screen dragging, or device tilting.
Also let screen tilting be used for movement?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.