É possível fazer, por exemplo, um RPG e usar flex como frontend e Java como backend?
Ah e complementando a pergunta, eu pretendo usar HTTPService, então será uma espécie de AJAX Game, stateless conection. Dá pra fazer?
Que é possível fazer um jogo em flex eu sei, o que tenho dúvidas é quanto ao número de jogadores online se http funciona…
Até mais []'s
Depende o que voce quer fazer.
É um MMO? Ou um daqueles Web-RPGs?
Você não está confundindo Flex com Flash?
Nunca ouvi falar de Flex para jogo.
Rapaz, vou te falar a verdade, não entendo muito dessas siglas MMO RPG etc. Eu to fazendo com um amigo, ele que é viciado nesse estilo de jogo…
Mas respondendo sua pergunta. E se for um MMO? e se for um Web-RPG? Dá pra ser feito com HTTP?
RafaelVian,
Flex mesmo! Eu só engano um pouco com mx:Application e o código é todo em ActionScript. Vou mostrar o mxml de um jogo.
[code]<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx=“http://www.adobe.com/2006/mxml”
layout=“absolute”
width=“480”
height=“384”
frameRate=“100”
creationComplete=“creationComplete()”
enterFrame=“enterFrame(event)”
click=“click(event)”
mouseDown=“mouseDown(event)”
mouseUp=“mouseUp(event)”
mouseMove=“mouseMove(event)”
currentState=“MainMenu”>
<mx:states>
<mx:State
name="Game"
enterState="enterGame(event)"
exitState="exitGame(event)">
</mx:State>
<mx:State
name="LevelEnd">
<mx:AddChild relativeTo="{myCanvas}" position="lastChild">
<mx:Button x="380" y="344" label="Continue" id="btnContinue" click="btnContinueClicked(event)" width="90" height="30"/>
</mx:AddChild>
<mx:AddChild relativeTo="{myCanvas}" position="lastChild">
<mx:Label x="10" y="10" text="Congratulations, you finished the level."/>
</mx:AddChild>
</mx:State>
<mx:State name="MainMenu">
<mx:AddChild relativeTo="{myCanvas}" position="lastChild">
<mx:Button x="381" y="344" label="Start" id="btnStart" click="startGameClicked(event)" width="90" height="30"/>
</mx:AddChild>
<mx:AddChild relativeTo="{myCanvas}" position="lastChild">
<mx:Image x="10" y="49" source="@Embed('../media/mainmenu.png')"/>
</mx:AddChild>
<mx:AddChild relativeTo="{myCanvas}" position="lastChild">
<mx:Label x="10" y="10" text="Flex Fighters" fontSize="20" fontWeight="bold"/>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Canvas x="0" y="0" width="100%" height="100%" id="myCanvas"/>
<mx:Script>
<![CDATA[
protected var inGame:Boolean = false;
protected var currentLevel:int = 1;
public function creationComplete():void
{
LevelDefinitions.Instance.startup();
}
public function enterFrame(event:Event):void
{
if (inGame)
{
GameObjectManager.Instance.enterFrame();
myCanvas.graphics.clear();
myCanvas.graphics.beginBitmapFill(GameObjectManager.Instance.backBuffer, null, false, false);
myCanvas.graphics.drawRect(0, 0, this.width, this.height);
myCanvas.graphics.endFill();
}
}
private function click(event:MouseEvent):void
{
GameObjectManager.Instance.click(event);
}
private function mouseDown(event:MouseEvent):void
{
GameObjectManager.Instance.mouseDown(event);
}
private function mouseUp(event:MouseEvent):void
{
GameObjectManager.Instance.mouseUp(event);
}
private function mouseMove(event:MouseEvent):void
{
GameObjectManager.Instance.mouseMove(event);
}
protected function startGameClicked(event:Event):void
{
currentState = "Game"
}
protected function enterGame(event:Event):void
{
Mouse.hide();
GameObjectManager.Instance.startup();
Level.Instance.startup(currentLevel);
inGame = true;
}
protected function exitGame(event:Event):void
{
Mouse.show();
Level.Instance.shutdown();
GameObjectManager.Instance.shutdown();
inGame = false;
}
protected function btnContinueClicked(event:Event):void
{
currentLevel = LevelDefinitions.Instance.getNextLevelID(currentLevel);
if (currentLevel == 0)
{
currentLevel = 1;
currentState = "MainMenu";
}
else
{
currentState = "Game"
}
}
]]>
</mx:Script>
</mx:Application>[/code]
Esse código é do main.mxml, tem uma série de clases action script é o jogo em si… Só não sei se dá pra fazer um RPG devido as limitações do HTTP.
É podem dar como resolvido esse tópico, andei dando uma pesquisada…
RPG comum dá pra fazer
MMO dá pra fazer, mas duvido que sairia algo que preste devido ao HTTP ser stateless e ter headers muito grandes dificultando…