我不知道这样做的最佳方法是什么.
在我的application.html.erb上我定义了一个标题div.
我的默认控制器(root)是主页控制器.我希望如果我在主页的索引处标题是使用某些内容呈现的,但所有其他控制器都会在该标题内呈现另一个内容.
如何在该标题div中创建一个条件,以根据正在呈现的控制器呈现不同的内容?
在不久的将来的某个时候,我将开始开发游戏引擎.我想要包含的一个功能是拥有多个渲染系统,例如directx 9/10/11和OpenGL.这样,使用此引擎的游戏将能够支持更多玩家,因为如果一个渲染系统不起作用,它将恢复为另一个.
所以我的问题是,我该怎么做呢?我研究了一下,看到Ogre3D使用了这样的东西,但我不知道他们是怎么做到的.我基本上希望能够插入不同的渲染系统并使用相同的代码来运行它.
我的问题类似于以下帖子 渲染另一个控制器的视图
我有一个TestConfigController我的问题是我可以做什么,以防验证失败,我想渲染控制器:测试和查看:编辑而不是控制器:testCOnfig和视图:编辑
def save() {
def testConfigInstance = new TestConfig(params)
if (!testConfigInstance.save(flush: true)) {
Run Code Online (Sandbox Code Playgroud)
/*而不是查看:"编辑"我想要查看:"/ test/edit"哪个不起作用*/
render(view:"edit", model: [testConfigInstance: testConfigInstance],id:params.test.id)
return
}
println "+++++++++++++++++++++++++"
flash.message = message(code: 'Data successfully saved', args: [message(code: 'testConfig.label', default: 'Successfully saved')])
redirect(action: "edit", controller:"test", id:params.test.id)
}
Run Code Online (Sandbox Code Playgroud)
有什么指针吗?我已经查看了grails重定向 ,它没有"模型"参数,因此无法将验证错误传递给视图另外我已经查看了没有控制器参数的grails渲染,以便我可以回到不同的控制器!如果需要更多细节/代码,请告诉我
编辑 以下是在使用这两件事之一时发生的
render(view:"/test/edit", model: [testConfigInstance: testConfigInstance],id:params['test.id'])
Run Code Online (Sandbox Code Playgroud)
上面的代码呈现页面/ test/edit而没有引用testid最终错误地说"test.id"不能为null ..(表示它的渲染/测试/编辑而不是/ test/edit/1)
render(view:"/test/edit/"+params['test.id'], model: [testConfigInstance: testConfigInstance],id:params['test.id'])
Run Code Online (Sandbox Code Playgroud)
上面的代码导致以下错误
The requested resource (/EasyTha/WEB-INF/grails-app/views/test/edit/1.jsp) is not available.
Run Code Online (Sandbox Code Playgroud)
以上代码中的任何一个代码只在结尾处呈现"/ test/edit"没有id,因此最终错误地说test.id不能为null.
我正在编写一段代码,在每个网页上显示随机赞助商图片.我认为调用我的函数的最佳位置是在Views/Shared/_Layout.cshtml页面中,因为那是在每个页面加载的那个.
我在我的域模型的服务类中编写了ChildActionOnly函数,并在我的homecontroller中编写了一个函数,在Views/Home/Randomsponsor.cshtml的简单视图中返回值,并在Html.action的共享布局中调用该函数.
一切都很好,但运行时我得到下一个错误:
{"The controller for path '/' was not found or does not implement IController."}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?
域项目中的方法:
public String advertsForCountry()
{
String studentSchool = finder.getLoggedStudent().SchoolId;
int studentCountry = db.Schools.Find(studentSchool).CountryId;
List<Sponsor> sponsorsForStudent = new List<Sponsor>();
List<Advert> adverts = db.Adverts.ToList();
foreach(Advert adv in adverts)
{
foreach(Country cntry in adv.Countries)
{
if(cntry.CountryId == studentCountry)
{
sponsorsForStudent.Add(adv.Sponsor);
}
}
}
Random random = new Random();
int randomSP = random.Next(0, sponsorsForStudent.Count()-1);
string sponsorAdvert = sponsorsForStudent.ElementAt(randomSP).SponsorCompany;
return sponsorAdvert;
}
Run Code Online (Sandbox Code Playgroud)
在HomeController中:
[HttpGet]
[ChildActionOnly]
public …Run Code Online (Sandbox Code Playgroud) 我有一个TasksController和一个SubtasksController.在SubtasksController动作的给定时刻,我想:
# app/controllers/tasks_controllers.rb
render 'tasks/index' # Or: render template: 'tasks/index'
Run Code Online (Sandbox Code Playgroud)
从视图中调用该操作时,看起来rails试图呈现错误的部分:
ActionView::Template::Error (Missing partial subtasks/tasks, private_area/tasks, application/tasks with {:locale=>[:ca, :es], :formats=>[:js, :html], :handlers=>[:erb, :builder, :slim, :jbuilder, :coffee, :haml]}. Searched in:
* "/Users/****/app/views"
Run Code Online (Sandbox Code Playgroud)
我真的不明白这里发生了什么,有什么想法吗?
我有一个问题可以改变渲染方法的频率.我找到了这个:
默认情况下,在libgdx中,呈现线程会连续调用ApplicationListener类的render()方法,其频率取决于您的硬件(每秒30-50-80次).我用
Gdx.graphics.setContinuousRendering(false);
Run Code Online (Sandbox Code Playgroud)
在我的create方法中,如果用户触摸屏幕,渲染就会停止并启动.但我希望以每秒1次的速度减慢频率.是否可以解决此问题,或者我只能使用render方法的默认设置.我搜索但没有找到解决方案.感谢帮助.
我想要一个透明背景的threejs帆布.我正在创建一个这样的渲染器:
# coffeescript
r = new THREE.WebGLRenderer alpha: true
Run Code Online (Sandbox Code Playgroud)
当我打电话时r.render(),它按预期工作,对象出现在透明背景上.但是,当我尝试使用EffectComposer添加后处理时,如下所示:
cmp = new THREE.EffectComposer r
cmp.addPass new THREE.RenderPass scene, camera
effect = new THREE.FilmPass 0.9, 2, 2048, true
effect.renderToScreen = true
cmp.addPass effect
cmp.render 3
Run Code Online (Sandbox Code Playgroud)
新的结果是场景按预期渲染(对象正确应用了影片效果),除了背景不再是所需的透明...而是黑色和不透明.为什么?如何防止后期处理篡改我的透明背景?
我是这个论坛的新手,只是为了问这个具体的问题而注册:我一直在关注视频游戏开发的YouTube网络系列(如何制作2D游戏 - 由EddieVanHalen98制作)但他没有告诉我如何让相机跟随特定的精灵.
我的渲染代码如下
public class [ClassName] {
polkymain game;
OrthographicCamera camera;
public static int PolkyX;
public static int PolkyY;
SpriteBatch batch;
public GameScreen(polkymain game){
this.game = game;
camera = new OrthographicCamera();
camera.setToOrtho(true, 1280, 1240);
batch = new SpriteBatch();
PolkyX = 0;
PolkyY = 0;
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.95F, 0.95F, 0.95F, 0.95F);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
generalUpdate();
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(Assets.Sprite_Mario_main, PolkyX, PolkyY);
batch.end();
}
public void generalUpdate(){
if(Gdx.input.isKeyPressed(Keys.D) || (Gdx.input.isKeyPressed(Keys.LEFT))
{
PolkyX += 5;
}
if(Gdx.input.isKeyPressed(keys.A) || (Gdx.input.isKeyPressd(Keys.RIGHT)) …Run Code Online (Sandbox Code Playgroud) 我在Angular2中渲染表达式时遇到了麻烦.
例如,我有类似下面的例子,但{{profile.name}}什么都没有.
然而,它不仅仅是在从组件实例访问某些东西时.无论我放在表达式中,它都不会呈现(例如{{1 + 2}}).更奇怪的是,它删除了包含表达式的DOM元素的所有内容.
import { Component, View } from 'angular2/core'
@Component({
selector: 'my-component'
})
@View({
template: `
<div class="user">
{{profile.name}}
</div>
`
})
export class MyComponent {
profile
constructor() {
this.profile = {
name: 'John Smith'
}
}
}
Run Code Online (Sandbox Code Playgroud)
不知道我错过了什么.任何帮助将非常感激!
编辑
所以我做了一些进一步的测试,发现问题只发生在我使用的时候<router-outlet>.所以我有一些看起来像这样的东西(代码量的道歉)
app.ts
import { View, Component } from 'angular2/core'
import { RouteConfig, RouterOutlet } from 'angular2/router'
import { Home } from './home'
@Component({
selector: 'my-app'
})
@View({
template: '<router-outlet></router-outlet>',
directives: [RouterOutlet] …Run Code Online (Sandbox Code Playgroud) 我正在制作一个菜单来更改Google Maps API的类型,但是按下的状态无法按我预期的方式工作。需要注意的是文本组件内部的状态没有被重新渲染后this.state.pressed通过功能改变setPressedState,它不包含在组件上重新绘制MapMenu使用后组件getPressed。
注意:警报显示按下的状态正在更改。
class MapMenu extends Component{
constructor(props){
super(props);
this.state = {
pressed: 'standard'
}
}
setPressedState(press){
this.state.pressed = press;
Alert.alert(this.state.pressed)
}
getPressed(){
return(this.state.pressed);
}
render(){
return(
<View style={styles.container}>
<View style={{backgroundColor: 'red'}}><Text>{this.state.pressed}</Text></View>
<TouchableOpacity style={styles.button}
onPress={() => this.setPressedState('standart')}
>
<Text>Mapa</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.button}
onPress={() => this.setPressedState('hybrid')}
>
<Text>Hibrido</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.button}
onPress={() => this.setPressedState('satellite')}
>
<Text>Satellite</Text>
</TouchableOpacity>
</View>
);
}
}
Run Code Online (Sandbox Code Playgroud) render ×10
libgdx ×2
3d ×1
angular ×1
asp.net-mvc ×1
c# ×1
c++ ×1
camera ×1
controller ×1
directx ×1
expression ×1
game-engine ×1
grails ×1
gsp ×1
java ×1
razor ×1
react-native ×1
redirect ×1
state ×1
system ×1
templates ×1
three.js ×1
typescript ×1
webgl ×1