`
wangshu3000
  • 浏览: 135040 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

PSP程序开发例子解析(五)Shapes

UP 
阅读更多
 绘制各种形状 无话可说
#include <stdio.h>

#include <JGE.h>
#include <JRenderer.h>
#include <JLBFont.h>
#include "JAssert.h"

#include "GameApp.h"


//-------------------------------------------------------------------------------------
// Constructor. Variables can be initialized here.
//
//-------------------------------------------------------------------------------------
GameApp::GameApp()
{
mAngle = 0.0f;

}


//-------------------------------------------------------------------------------------
// Destructor.
//
//-------------------------------------------------------------------------------------
GameApp::~GameApp()
{

}


//-------------------------------------------------------------------------------------
// This is the init callback function. You should load and create your in-game 
// resources here.
// 
//-------------------------------------------------------------------------------------
void GameApp::Create()
{


}


//-------------------------------------------------------------------------------------
// This is the clean up callback function. You should delete all your in-game 
// resources, for example texture and quads, here.
// 
//-------------------------------------------------------------------------------------
void GameApp::Destroy()
{

}


//-------------------------------------------------------------------------------------
// This is the update callback function and is called at each update frame
// before rendering. You should update the game logic here.
//
//-------------------------------------------------------------------------------------
void GameApp::Update()
{

JGE* engine = JGE::GetInstance();

// do a screen shot when the TRIANGLE button is pressed
if (engine->GetButtonClick(PSP_CTRL_TRIANGLE))  
{
   char s[80];

   // save screen shot to root of Memory Stick 
   sprintf(s, "ms0:/screenshot.png");    
   JRenderer::GetInstance()->ScreenShot(s);
}

// exit when the CROSS button is pressed
if (engine->GetButtonClick(PSP_CTRL_CROSS)) 
{
   engine->End();
   return;
}

float dt = engine->GetDelta();   // Get time elapsed since last update.

mAngle += 2.0f*dt;
if (mAngle >= M_PI*2)
   mAngle = 0;
}


//-------------------------------------------------------------------------------------
// All rendering operations should be done in Render() only.
// 
//-------------------------------------------------------------------------------------
void GameApp::Render()
{

// get JRenderer instance
JRenderer* renderer = JRenderer::GetInstance();  

// clear screen to black
renderer->ClearScreen(ARGB(0,0,0,0));

float xList[] =
{
   10, 100, 120, 80, 50, 10
};

float yList[] = 
{
   100, 100, 60, 30, 10, 10
};

renderer->DrawPolygon(xList, yList, 6, ARGB(255,0,0,255));     // Draw polygon with 6 vertices.

renderer->DrawLine(120, 100, 320, 250, 5, ARGB(255,255,0,0));    

renderer->FillCircle(400, 180, 50, ARGB(255,123,60,200));

   renderer->DrawPolygon(130, 200, 40, 4, mAngle, ARGB(255,0,0,255));   // Draw a symmetric polygon with 4 sides.

   renderer->FillPolygon(80, 200, 40, 4, mAngle, ARGB(255,0,0,255));   // Draw a symmetric polygon with 6 sides.

renderer->DrawRect(250, 100, 40, 60, ARGB(255,255,255,255));

renderer->DrawRoundRect(340, 30, 30, 20, 5, ARGB(255,255,255,255));

renderer->FillRoundRect(200, 20, 40, 40, 8, ARGB(255,255,255,64));
Sleep(1);
}


//-------------------------------------------------------------------------------------
// This function is called when the system wants to pause the game. You can set a flag
// here to stop the update loop and audio playback.
//
//-------------------------------------------------------------------------------------
void GameApp::Pause()
{

}


//-------------------------------------------------------------------------------------
// This function is called when the game returns from the pause state.
//
//-------------------------------------------------------------------------------------
void GameApp::Resume()
{

}

 

分享到:
评论

相关推荐

    Shapes小例子

    在计算机编程中,特别是在图形用户界面(GUI)开发中,"Shapes"通常指的是基本的图形对象,如矩形、圆形、椭圆、线等。这些形状可以用于创建用户界面元素、图标或者进行数据可视化。 描述中提到的博客链接,虽然...

    3D-Alpha-Shapes.zip_Alpha_Alpha+shapes_Alpha+shapes算法_机载_激光雷达

    在三维激光扫描和机载雷达数据的分析中,它能有效地提取出物体的边缘信息,从而帮助我们理解和解析复杂的地理环境。本文将深入探讨Alpha Shapes算法的核心原理及其在机载激光雷达(LiDAR)领域的应用。 Alpha ...

    Shapes2

    当用户在应用程序中选择“Shapes2”字体时,系统会解析这些指令并生成相应的图形。这种字体格式的优势在于它支持可缩放性,无论是在大屏幕还是小屏幕上,都能保持清晰的显示效果。 在设计工作中,设计师可能会使用...

    Mega Shapes.rar

    Unity,作为全球领先的实时3D创作工具,被广泛应用于游戏开发、虚拟现实、增强现实以及视觉效果等领域。在Unity中,开发者通常会利用各种形状来创建丰富多彩的游戏场景或交互式体验。"Mega Shapes"是Unity中一种高级...

    Unity插件Shapes最新版 4.2.1

    Unity插件Shapes最新版 4.2.1

    Unity插件 Shapes4.1.3

    Shapes 是一款实时向量图库,带有高质量的线条画和无限分辨率的图形,并以高级的抗锯齿技术渲染 功能特色 高质量的线条画,带有随机厚度以及高级抗锯齿 • 可指定厚度单位为米、像素或节点 • 2D 形状,比如多段线、...

    u3d Shapes 3.2.1

    《Unity3D插件:Shapes 3.2.1详解》 Unity3D,作为一款全球领先的实时3D创作工具,被广泛应用于游戏开发、视觉特效、建筑可视化、训练模拟等多个领域。在Unity的生态系统中,插件是提升效率、扩展功能的重要组成...

    Mega Shapes 2.33.unitypackage

    Mega Shapes - 神奇的卡通场景与模型制作工具,注意这是一款Unity3d 插件,非模型 制作一个赛车游戏?完全没有问题。 为道路画一条线,画一个截面,就能制作出道路。 添加障碍或扭曲他们,可任意发挥你的想象力!...

    牛津小学英语五年级上册unit7shapes说课设计.pdf

    牛津小学英语五年级上册unit7shapes说课设计.pdf

    Shapes1

    标题“Shapes1”暗示我们可能关注的是一个与图形或设计元素相关的主题,特别是当我们看到描述也是同样的“Shapes1”时,这通常意味着可能是一个包含图形形状的资源集合。标签“字体”进一步指明了这个话题的重点,即...

    Java翁恺网易公开课Shapes.zip

    Java语言程序设计进阶-翁恺

    Shapes v3.2.1.unitypackage

    Shapes is a real-time vector graphics library with high-quality line drawing and infinite resolution shapes, rendered with advanced anti-aliasing techniques

    Shapes -unity插件

    Shapes 是一款实时向量图库,带有高质量的线条画和无限分辨率的图形,并以高级的抗锯齿技术渲染

    jquery.roundabout-shapes 5.js

    jquery.roundabout-shapes 5.js

    iOS实例开发源码——jashmenn-shapes-panels-53a982e.zip

    【iOS实例开发源码——jashmenn-shapes-panels-53a982e.zip】是一个关于iOS应用开发的源代码包,主要聚焦于图形和界面元素的实现。这个项目可能由开发者Jashmenn创建,展示了如何在iOS应用中设计和使用自定义形状...

    AutoCAD逆向工程中Shx字体文件解析

    本文详细解析了AutoCAD中的Shx(形)字体文件格式,探讨了其三种不同格式的特点,并重点介绍了如何在应用程序中正确加载这些Shx字体文件。通过深入分析Shx字体文件的二进制格式,本文为AutoCAD逆向工程中的字体处理...

    Allegro16.6中Out of date shapes解决办法

    在使用Allegro16.6这一款高性能的PCB设计软件时,我们可能会遇到“Out of date shapes”这一错误提示,它会阻止我们继续进行下一步设计或者光绘出图。该问题的成因通常与在布线或铺铜阶段出现重复的铺铜行为有关。要...

    alpha shapes提取点云边界特征(C++版本)

    alpha shapes提取点云边界特征(C++版本)基于PCL库写的alpha shapes算法,具体实现原理参考:https://blog.csdn.net/qq_36686437/article/details/115168516或者参考论文:[1]刘科. 平面点云边界提取算法研究[D].长沙...

    org.eclipse.gef.examples.shapes_anchor.zip

    Eclipse GEF是一个开源框架,用于构建图形化用户界面,特别是用于创建模型驱动的开发工具。 【描述】描述中的"org.eclipse.gef.examples.shapes_anchor.zip"同样强调了这是一个关于Eclipse GEF的示例代码包,重点...

    Numerical Geometry of Non-Rigid Shapes

    A Practical Guide”、“High Performance Discovery in Time Series: Techniques and Case Studies”等,都涉及了计算机科学的不同领域,包括对象理论、数据库技术、算法和程序设计、视觉系统、模式识别、解析技术...

Global site tag (gtag.js) - Google Analytics