Skip to content

Latest commit

 

History

History
 
 

docs

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>README &mdash; RLZero  documentation</title>
      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  <!--[if lt IE 9]>
    <script src="_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
        <script src="_static/jquery.js"></script>
        <script src="_static/underscore.js"></script>
        <script src="_static/doctools.js"></script>
    <script src="_static/js/theme.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="rlzero" href="rlzero.html" />
    <link rel="prev" title="Welcome to RLZero" href="index.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
            <a href="index.html" class="icon icon-home"> RLZero
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">README</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#use">Use</a></li>
<li class="toctree-l2"><a class="reference internal" href="#differences-from-pygame-zero">Differences from Pygame Zero</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rlzero.html">rlzero</a></li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Additional:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="raylib.html">raylib</a></li>
<li class="toctree-l1"><a class="reference internal" href="pyray.html">pyray</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">RLZero</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
      <li>README</li>
      <li class="wy-breadcrumbs-aside">
            <a href="_sources/README.md.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <div class="tex2jax_ignore mathjax_ignore section" id="readme">
<h1>README<a class="headerlink" href="#readme" title="Permalink to this headline"></a></h1>
<p>A simplified API for Raylib for use in education and to enable beginners to create 3d games.</p>
<p>Current state:</p>
<div class="section" id="use">
<h2>Use<a class="headerlink" href="#use" title="Permalink to this headline"></a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip3</span> <span class="n">install</span> <span class="n">rlzero</span>
</pre></div>
</div>
<p>RLZero is just a few classes that sit on top of Raylib.  Once you have imported RLZero you automatically get all of Raylib
and you could copy any Raylib Python example code you find.  Then if you want to use RLZero’s classes as well as Raylib you can.</p>
<p>The normal way of using RLZero is not to write your own main game loop.  Instead, you set some
variables to tell RLZero  how you’d like
your game to be define some specially named methods.</p>
<p><strong>test.py</strong>:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">WIDTH</span><span class="o">=</span><span class="mi">800</span>
<span class="n">HEIGHT</span><span class="o">=</span><span class="mi">640</span>
<span class="n">CAMERA</span><span class="o">=</span><span class="n">rl</span><span class="o">.</span><span class="n">CAMERA_FIRST_PERSON</span>
<span class="n">DATA_DIR</span><span class="o">=</span><span class="s2">&quot;examples/models/resources/models/&quot;</span>

<span class="n">cube</span> <span class="o">=</span> <span class="n">Cube</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> <span class="s1">&#39;blue&#39;</span><span class="p">)</span>

<span class="k">def</span> <span class="nf">draw</span><span class="p">():</span>
    <span class="n">clear</span><span class="p">()</span>
    <span class="n">cube</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>

<span class="k">def</span> <span class="nf">update</span><span class="p">():</span>
    <span class="n">cube</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">cube</span><span class="o">.</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span>
    <span class="k">if</span> <span class="n">cube</span><span class="o">.</span><span class="n">x</span> <span class="o">&gt;</span> <span class="mi">100</span><span class="p">:</span>
        <span class="n">cube</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="o">-</span><span class="mi">100</span>
</pre></div>
</div>
<p>Then you tell RLZero to run your methods in its game loop:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python -m rlzero test.py
</pre></div>
</div>
<p>All the runner module does it add this line to the top of your code:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">rlzero</span> <span class="kn">import</span> <span class="o">*</span>
</pre></div>
</div>
<p>and this line to the bottom of your code:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">run</span><span class="p">()</span>
</pre></div>
</div>
<p>So if you can’t use the runner, you can do that manually.</p>
</div>
<div class="section" id="differences-from-pygame-zero">
<h2>Differences from Pygame Zero<a class="headerlink" href="#differences-from-pygame-zero" title="Permalink to this headline"></a></h2>
<ol class="simple">
<li><p>We don’t have a special mode in the Mu editor like Pygame Zero does, and therefore it is necessary to add an <code class="docutils literal notranslate"><span class="pre">import</span></code> line to the start of
every program, and a <code class="docutils literal notranslate"><span class="pre">run()</span></code> line to the end.</p></li>
</ol>
</div>
</div>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="index.html" class="btn btn-neutral float-left" title="Welcome to RLZero" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="rlzero.html" class="btn btn-neutral float-right" title="rlzero" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2021, Richard Smith.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>