
PeterJohn ThreeDim
Python IDE - Creating 3D Games
Only for iPhone
$5.99 · Designed for iPhone
iPhone
****What is this;;
PeterJohn is a Python3 PlayGrounds runs on iPhone.
This enables you to code, run and learn Python3 even on the train, on the bus, even Offline.
****Why we named "PeterJohn";;
Peter is the son of Old John. Young John is the son of Zebedee.
Peter and Young John led Christianity in the early church.
We named "PeterJohn" after the two names of Peter and Young John.
** Why we made this and Why we chose Python3;;
We wanted to code even on the train or even on the bus,
even on OffLine.
and wanted to offer you to do the same things.
We chose Python3 as the programing language.
'cause the Curly Bracket language such
as JavaScript needs many lines and
it's Not appropriate in the narrow iPhone screen.
**Basic Technology;;
PeterJohn is constructed on some of basic technologies.
**Python-Apple-Support;;
We didn't want to make any Wheel language and
any Wheel interpreter.
so we chose Python3 and
we used "Python-Apple-Support" as the Python3 interpreter.
"Python-Apple-Support" is one of CPython.
**CPython's Extension Function;;
This is used for Python to call Swift function
such as GUI
via Objective-C and
for Swift to call Python via Objective-C
in order to offer Python3 interpreter.
**PeterJohn-Bridging-Header.h;;
This is used to import Objective-C header files to Swift.
This enables Swift to use CPython's Extension Function via Objective-C.
**PeterJohn-Swift.h;;
This enables CPython's Extension Function to use Swift such as GUI via Objective-C.
**AudioKit;;
To implement playing MIDI function, we used AudioKit.
**squash.py;;
Many people on this planet have learned the programing
from the "squash.py".
****What we offer you;;
**s00stdErrTest.py;;
iOS hides "stderr" to make simple to use iPhone.
but it's required when we learn Python3.
so I wrote "logStdErr.py".
Import "logStdErr" and
execute "logStdErr.errToFile()"
in your code.
**s01basicUi.py;;
pj.title()
pj.removeAllFromCanvas()
pj.createRectangle()
pj.createCircle()
pj.createLabel()
pj.setText()
pj.updateMainPanel()
**s02midiTest.py;;
pj.midi();
**s03bindTest.py;;
pj.bindMotionFunction()
pj.bindMotionCanvasFunction()
pj.bindButtonFunction()
pj.bindKeyPressFunction()
For example,
pj.bindButtonFunction("p1:s03bindTest.click")
By the notation of "p1:s03bindTest.click",
the function "click" is executed
only from the script file "s03bindTest" in the project "p1".
**s04timerTest.py;;
pj.startTimerFunctionAfter()
pj.stopTimer()
For example,
pj.startTimerFunctionAfter("p1:s04timerTest.gameLoop")
By the notation of "p1:s04timerTest.gameLoop",
the function "gameLoop" is executed
only from the script file "s04timerTest" in the project "p1".
**s05squash.py;;
This is the "PeterJohn" implementation
of the Famous "squash.py".
**s06spriteBundle.py;;
pj.createSpriteBundle()
This's just a demonstration,
you need to proceed to create Sprite from SandBox
'cause the Bundle file is freezed when we submitted
this app to AppStore and
you can Not change the Bundle file.
**s07audioBundle.py;;
pj.playSoundEffectsBundle()
pj.prepareBgmBundle()
pj.playBGM()
This's just a demonstration,
you need to proceed to create Audio from SandBox
'cause the Bundle file is freezed when we submitted
this app to AppStore and
you can Not change the Bundle file.
**s08spriteSandBox.py;;
pj.createSpriteSandBox()
You can import your PNG files to your project.
**s09audioSandBox.py;;
pj.playSoundEffectsSandBox()
pj.prepareBgmSandBox()
pj.playBGM()
You can import your MP3 files to your project.
**Acknowledgements;;
Thank you Lord, Thank you King Jesus.
Thank you AppStore Review Team, every day.
Thank you Guido van Rossum, the author of "CPython".
Thank you Russell Keith-Magee, the author of "Python-Apple-Support".
Thank you Aurelius Prochazka, the author of "AudioKit".
Thank you M-Sugaya, the author of "squash.py".
Best Regards,
--Yasushi Yassun Obata
Ratings & Reviews
This app hasn’t received enough ratings or reviews to display an overview.
"tk.stopTkTimer()" BugFix and Adjusted "s04timerTest.py" Version;
in "TutorialSeason001/s04timerTest.py",
we Found a Bug that "tk.stopTkTimer()" function didNot make the stop of Timer.
We Fixed the Bug and Adjusted "s04timerTest.py" a Little
so that User Can Understand Easily How to Use
both "tk.startTimerAfterFunction()" and "tk.stopTkTimer()" functions.
And in some of "TutorialSeason001" examples,
we Added "tk.stopTkTimer()"
So that each example Can Avoid influence from the other example
which Uses Timer in the Same Projects.
And One More Thing,
at this timing,
we added Six Functions Below to "tkInter" module.
It will help you to create some of Apps which use different Font Size or different Font Color,
especially to create some of Games.
**Added Function;;
tk.setLabelFontSize(labelNodeName, fontSize)
tk.setLabelFontColor(labelNodeName, r, g, b, a)
tk.setMainLabelFontSize(fontSize)
tk.setMainLabelFontColor(r, g, b, a)
tk.setTitleLabelFontSize(fontSize)
tk.setTitleLabelFontColor(r, g, b, a)
BestRegards,
--Yasushi Yassun Obata
The developer, Yasushi Obata, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy .
Data Not Collected
The developer does not collect any data from this app.
Accessibility
The developer has not yet indicated which accessibility features this app supports. Learn More
Information
- Seller
- Yasushi Obata
- Size
- 133.1 MB
- Category
- Developer Tools
- Compatibility
Requires iOS 15.0 or later.
- iPhone
Requires iOS 15.0 or later. - iPod touch
Requires iOS 15.0 or later. - Mac
Requires macOS 12.1.0 or later and a Mac with Apple M1 chip or later. - Apple Vision
Requires visionOS 1.0 or later.
- Languages
- English
- Age Rating
4+
- 4+
- Copyright
- © CopyRights Reserved by Yasushi Yassun Obata, 2022
